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

来源:互联网 发布:手机淘宝怎么登不上去 编辑:程序博客网 时间:2024/06/14 02:54

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 100int 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\n");       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、结果展示


0 0