文档库 最新最全的文档下载
当前位置:文档库 › C实现两个文件的复制代码

C实现两个文件的复制代码

实现文件的复制
1) 准备数据缓冲区
2) 打开现有的源文件
3) 创建新的目标文件
4) 从源文件读取数据放到数据缓冲区
5) 把数据缓冲区的内容写到目标文件
6) 清空数据缓冲区,继续从源文件读取数据 ,重复4,5
7) 如果read返回0,代表源文件已经无数据可读,退出循环
8) 关闭源文件和目标文件
#include
#include
#include
#include
#include
#include

int main(int argc,char **argv)
{
if(argc != 3){ //命令参数小于3个
printf("输入操作有误\n");
}

char buf[100] = {};
//int fdr = open("a.txt",O_RDONLY)
int fdr = open(argv[1],O_RDONLY);
if(fdr == -1){
perror("open"),exit(-1);
}
//int fdw = open("b.txt",O_CREAT|O_RDWR|O_TRUNC,0666);
int fdw = open(argv[2],O_CREAT|O_RDWR|O_TRUNC,0666);
if(fdw == -1){
perror("open"),exit(-1);
}
while(1)
{
int res = read(fdr,buf,100);
if(res == 0)
break;
if(res == -1){
perror("read"),exit;
break;
}
int res2 = write(fdw,buf,res);
if(res2 == -1){
perror("write");break;
}
memset(buf,0,sizeof(buf));
}

close(fdr);
close(fdw);

return 0;
}
命令: ./a.out a.txt b.txt


相关文档