12月10日IO
作业:使用read和write实现拷贝文件,将1.txt内容前一半拷贝给2.txt后一半拷贝给3.txt
#include <myhead.h>int main(int argc, const char *argv[])
{//打开三个文件int fd1,fd2,fd3;fd1=open("1.txt",O_RDONLY);fd2=open("2.txt",O_CREAT|O_TRUNC|O_WRONLY,0664);fd3=open("3.txt",O_CREAT|O_TRUNC|O_WRONLY,0664);if(-1==fd1||-1==fd2||-1==fd3){perror("open");return -1;}//计算被拷贝文件长度int len=lseek(fd1,0,SEEK_END);//光标到末尾计算文件长度lseek(fd1,0,SEEK_SET); //光标置回到开头//拷贝前一半char buff1[10];ssize_t res,sum;while(1){res=read(fd1,buff1,sizeof(buff1));write(fd2,buff1,res);sum+=res;if(sum>=len/2){break;}}//拷贝后一半char buff2[10];int res2;while((res2=read(fd1,buff2,sizeof(buff2)))>0){write(fd3,buff2,res2);}//关闭文件close(fd1);close(fd2);close(fd3);return 0;
}
思维导图