思维导图:
作业:使用read、write实现两个文件的拷贝
代码:
#include <myhead.h>
int main(int argc, const char *argv[])
{
//判断传进来的文件个数是否为3
if(argc !=3 )
{
printf("file count error\n");
printf("usage: ./a.out srcfile destfile\n");
return -1;
}
//定义两个文件描述符,分别指向源文件和目标文件
int srcfd, destfd;
//以只读的形式打开源文件
if((srcfd = open(argv[1], O_RDONLY)) == -1)
{
perror("srcfile open");
return -1;
}
//以只写的形式打开目标文件
if((destfd = open(argv[2],O_WRONLY|O_CREAT|O_TRUNC)) == -1)
{
perror("destfile open");
return -1;
}
//定义字符搬运工
char c[1024];
int ret;
while((ret =read(srcfd,c,sizeof(c)))!=0)
{
//将字符写入到目标文件中去
write(destfd,c,ret);
}
//关闭两个文件
close(srcfd);
close(destfd);
return 0;
}
输出: