本文共 1499 字,大约阅读时间需要 4 分钟。
知识点补充:
#include#include #define BUFFER_SIZE 50int main(int argc,char **argv){ FILE *from_fd ,*to_fd;//文件指针的定义 long len; char buffer[BUFFER_SIZE]; int ret;//记录文件读取的长度 if(argc!=3) { printf("argument is not enough\n"); return -1; } if((from_fd=fopen(argv[1],"a+b"))==NULL)//以追加可读可写的方式打开文件,若文件不存在就新建文件 { printf("file not exist\n"); return -1; } fprintf(from_fd,"hello\n");//为文件写入数据 if((to_fd=fopen(argv[2],"w+b"))==NULL) { printf("file not create\n"); return -1; } //获取要复制的文件长度 fseek(from_fd,0L,SEEK_END);//把文件指针放置在文件的末尾,然后获取文件的长度 len=ftell(from_fd);//获取文件的长度 fseek(from_fd,0L,SEEK_SET);// while(!feof(from_fd))//判断文件指针是否到文件末尾 { //读文件 fread(buffer,BUFFER_SIZE,1,from_fd);//返回一次读取文件的大小 if(bUFFER_SIZE>=len)//若文件长度已经减小至比返回值小,此时已读取完文件 { fwrite(buffer,len,1,to_fd); }else { fwrite(buffer,BUFFER_SIZE,1,to_fd); len-=BUFFER_SIZE;//记录还需复制的文件长度 } bzero(buffer,BUFFER_SIZE);//清空缓冲区的内容 } fclose(from_fd); fclose(to_fd); exit(0);}
编译及运行
//编译gcc File_test.c -o test //运行./copy_file from.c to.c
转载地址:http://rumvn.baihongyu.com/