以下程序是实现文件的拷贝,源文件和目标文件名都由命令行传入。程序的具体要求见文件说明,填入相应代码。 #include
#include
#include
#include
#define BUFFER_SIZE 1024 int main(int argc,char **argv) { FILE *from_fd; FILE *to_fd; long file_len=0; char buffer[BUFFER_SIZE]; char *ptr; /*判断入参*/ if(__1__) { printf("Usage:%s fromfile tofile\n",argv[0]); exit(1); } /* 打开源文件 */ if((from_fd=fopen(__2__,__3__))==NULL) { printf("Open %s Error\n",argv[1]); exit(1); } /* 创建目的文件 */ if((to_fd=fopen(__4__,__5__))==NULL) { printf("Open %s Error\n",argv[2]); exit(1); } /*测得文件大小*/ fseek(__6__,__7__,__8__); file_len=ftell(from_fd); fseek(from_fd,0L,SEEK_SET); printf("from file size is=%d\n",file_len); /*进行文件拷贝*/ while(!feof(__9__)) { /*从文件复制数据进入缓存*/ fread(__10__,__11__,__12__,__13__); if(BUFFER_SIZE>=file_len) { /*从缓存将数据写入文件*/ fwrite(__14__,__15__,__16__,__17__); } else { fwrite(__14__,__15__,__16__,__17__); file_len=file_len-BUFFER_SIZE; } //写入完成后清空缓冲区 memset(__18__,__19__,__20__); } fclose(from_fd); fclose(to_fd); exit(0); }