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);