#include <stdio.h>

#include <string.h>

#include <stdlib.h>

int main(int argc,char * argv[])

{

            int ch;

          FILE *in,*out;

if (argc < 3|| argc >3)

{

fprintf(stderr,"文件参数%s用法不正确",argv[1])

    exit(1);

}

if ( (in = fopen(argv[1],"r")) != NULL)

{

fprintf(stderr,"没有%s这个文件或无权限打开,请检查这个操作",argv[1]);

               exit(2);

}

if((out = fopen(argv[2],"w")) == NULL)

{fprintf(stderr,"文件%s无法写入,没有%s这个文件,或无权限打开",argv[2]);

                         exit(3);

}

while ( ch = getc(in) != EOF)

{

                              putc(ch,out);

}

if (fclose(in) != 0 || fclose(out) != 0)

 fprintf(stderr,"文件关闭时发生错误\n");

return 0;

}

这段代码的好处是,我们在复制文件数据时可以省略Linux在复制数据,不必借用Linux

系统的cp程序,减少系统开销。