入门客AI创业平台(我带你入门,你带我飞行)
博文笔记

linux c之用fwrite和fread实现文件的复制

创建时间:2017-01-11 投稿人: 浏览次数:3680

1、题目

      用fwrite和fread函数实现文件的复制


2、函数解释

    

#include<stdio.h>
size_t fread(void *ptr, size_t size, size_t nmemb, FILE *FP);
size_t fwrite(const void *ptr, size_t size, size_t nmemb, FILE *FP);
2个函数返回:读或写的对象数
fread函数用于执行直接输出操作,参数ptr是读取数据的缓冲区指针,size是读去对象的大小,nmemb表示读取的对象个数,fp是FILE的结构指针
fwrite函数用于执行直接输入操作,参数ptr是要输入数据的缓冲区指针,size是读去对象的大小,nmemb表示写入的对象个数,fp是FILE的结构指针


3、代码实现

#include<stdio.h>
#include<unistd.h>
#include<stdlib.h>
#include<sys/types.h>

#define PATH1 "/home/chenyu/Desktop/linux/hello.txt"
#define PATH2 "/home/chenyu/Desktop/linux/test.txt"

#define READ_BUFF 100

int main()
{
    FILE *fp1, *fp2;
    int c = 0;
    char buf[READ_BUFF] = {0};
    if ((fp1 = fopen(PATH1, "rb")) == NULL) {
       printf("get hello.txt fp fail");
       return -1;
    }
    if ((fp1 = fopen(PATH2, "wb")) == NULL) {
       printf("get test.txt fp fail
");
       return -1;
    }
    while((c = fread(buf, sizeof(char), READ_BUFF, fp1)) > 0) {
       fwrite(buf, sizeof(char), c, fp2);
    }
    if(fclose(fp1) != 0) {
       puts("close fp1 fail");
    }
    if(fclose(fp2) != 0) {
      puts("close fp2 fail");
    }
    return 0;
}

4、结果展示


声明:该文观点仅代表作者本人,入门客AI创业平台信息发布平台仅提供信息存储空间服务,如有疑问请联系rumenke@qq.com。