fread/fwrite實現復制功能
阿新 • • 發佈:2017-09-23
eof urn 取字符 std 字符數 close stdio.h nbsp ror
1. fread/fwrite實現復制功能
#include <stdio.h> #include <stdlib.h> #define BUFFSIZE 4096 //執行: ./a.out file1 file2 //功能: 將file1的內容讀取出來,寫入file2,即復制 int main(int argc,char *argv[]) { char buffer[BUFFSIZE]; FILE *pRead,*pWrite; //讀文件指針 寫文件指針 int n; //檢測是否輸入file1和file2 if(argc!=3) { printf("main option error!\n"); return -1; } pRead = fopen(argv[1],"r"); //只讀 文件必須已存在 if(!pRead) { printf("fopen argv[1] error!\n"); return -1; } pWrite = fopen(argv[2],"w"); //只寫 若文件不存在,則創建 if(!pWrite) { printf("fopen argv[2] error!\n");return -1; } //從pRead指向文件讀取字符入buffer while( (n= fread(buffer,sizeof(char),sizeof(buffer),pRead))>0 ) { //檢測從buffer寫入pWrite指向文件的字符數,是不是等於讀取字符數 if( fwrite(buffer,sizeof(char),n,pWrite)!=n ) { printf("fwrite error!\n"); return -1; } }if(n<0) //fread返回值<0,說明fread讀取失敗 { printf("fread error!\n"); return -1; } //復制結束後,要關閉文件 fclose(pRead); fclose(pWrite); return 0; }
fread/fwrite實現復制功能