1007 实现文件拷贝命令

getchar ()putchar  is equavilent to getc (stdin)  :man getchar

getc  is equivalent to fgetc()

getc 其实是被定义成宏的  fgetc 其实被定义成函数

宏不占用调用时间

函数不占用编译时间

 

vim  mycpy.c

./mycpy  src dest 

命令行传参

int main(int argc,char **argc)

{

FILE *fps,*fpd;

int ch;//为什么不能用char  因为函数返回值可能会有负数

 

if(argc <3)

{

fprintf(stder,"usage %s<src><dst>)

}

 

fps=fopen(argv[1],"r");//为什么用r 要确保文件一定存在 否则必须报错

if(fps==NULL){perror("fopen());exit(1);}

fps=fopen(argv[2],"w");//为什么用r 要确保文件一定存在 否则必须报错

if(fpd==NULL){perror("fopen());exit(1);}//如果这里失败了 但是打开的文件没有来得及关闭其实就造成了内存泄漏  解决 通过钩子函数 把一些失败的操作挂在勾子函数

 

while(1)

{

ch=fgetc(fps);

if(ch==EOF)break;

fputc(ch,fpd);//写完了用 diff 比较两个文件差别

}

 

fclose();//首先关闭依赖别人的文件

fclose();

}

 

 

 

while(fgetc(fp)!=EOF)

 {

  count++;

}

fclose(fp);

posted @ 2021-10-07 21:46  张喆坤  阅读(29)  评论(0编辑  收藏  举报