1. 程式人生 > >fread/fwrite實現復制功能

fread/fwrite實現復制功能

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實現復制功能