#include "./common/head.h"
int main(int argc, char *argv[])
{
if(argc != 3){
printf("usage:cmd srcFile dstFile\n");
return 1;
}
FILE *fp = fopen(argv[1], "r"); //只读
if(!fp){
perror("fopen srcFile");
exit(1);
}
FILE *fp_copy = fopen(argv[2], "w"); //写,不存在则创建,存在文件截断为0字节
if(!fp_copy){
fclose(fp); //将打开的文件关闭再退出
perror("fopen dstFile");
exit(1);
}
char c;
while( (c = fgetc(fp)) != EOF ){ //从源文件中读字符,每执行一次fgetc,文件指针向后移动1个字节
fputc(c, fp_copy); //写到目标文件中去,每执行一次fputc,文件指针向后移动1个字节
}
fclose(fp);
fclose(fp_copy);
return 0;
}
终端:
$gcc mycopy.c -o mycopy
$ which copy
/bin/copy
$mv mycopy /bin
$mycat mycopy.c mycopy.cc