#include "myhead.h"
/*
fread配合fwrite来拷贝文件
*/
int main(int argc,char **argv)
{
FILE *srcfile;
FILE *destfile;
//定义数组存放读取的内容
char buf[1024*1024]; //1M大小
//定义变量保存fread的返回值
ssize_t ret;
//打开源文件
srcfile=fopen(argv[1],"r+"); //可读写方式
if(srcfile==NULL)
{
perror("打开源文件失败!\n");
return -1;
}
//新建目标文件
destfile=fopen(argv[2],"w+"); //可读写方式,可以新建
if(destfile==NULL)
{
perror("新建目标文件失败!\n");
return -1;
}
//循环读写拷贝文件
/*
两种常见的思路:
思路1:数据块划分为1个字节
思路2:数据块不划分为1个字节,文件大小/数据块大小
*/
while(1)
{
//读取源文件--》第二个,第三个参数有很多排列组合写法
ret=fread(buf,1,1024*1024,srcfile); //fread返回值代表成功读取的完整数据块个数
//if(ret==0) //从read获取灵感
//break;
//把读取的内容写入到目标文件
fwrite(buf,1,ret,destfile);
//判断是否读到文件末尾
if(feof(srcfile))
break;
}
//关闭文件
fclose(srcfile);
fclose(destfile);
return 0;
}