首先,实现copy,必须有三个参数(./mycp srcfile desfile ),所以得给main()函数传参.
步骤如下:
打开文件1
打开文件2
读文件1
写文件2
关闭文件1
关闭文件2
#include<stdio.h>
#include<stdlib.h>
int main(int argc,char **argv)
{
FILE *fps,*fds;
int ch;
if(argc<3)
{
fprintf(stderr,"Usage:%s <src_file> <dest_file>\n",argv[0]);
exit(1);
}
fps = fopen(argv[1],"r");
if(fps==NULL)
{
perror("fopen:");
exit(1);
}
fds = fopen(argv[2],"w+");
if(fds==NULL)
{
fclose(fps);
perror("fopen:");
exit(1);
}
while(1)
{
ch=fgetc(fps);
if(ch==EOF)
break;
fputc(ch,fds);
}
fclose(fps);
fclose(fds);
exit(0);
}
fgetc()函数,会返回一个int型,如果失败则会返回EOF
用diff这个命令可以判定两个文件是否相同,若相同什么都不返回
因为fgetc函数是一个个读的,只有读到文件末尾,才会返回EOF,所以它也可以用来计算文件的大小。`
#include<stdio.h>
#include<stdlib.h>
int main(int argc,char **argv)
{
FILE *fps;
int count=0;
if(argc<2)
{
fprintf(stderr,"Usage:%s <src_file> <dest_file>\n",argv[0]);
exit(1);
}
fps = fopen(argv[1],"r");
if(fps==NULL)
{
perror("fopen:");
exit(1);
}
while(fgetc(fps)!=EOF)
{
count++;
}
printf("count= %d\n",count);
fclose(fps);
exit(0);
}