12.8作业

int main(int argc, const char *argv[])
 20 {
 21     umask(0);
 22     int fd=open("1.png",O_RDONLY);
 23     int fd1=open("2.png",O_WRONLY|O_CREAT|O_TRUNC,0777);
 24     off_t size=lseek(fd,0,SEEK_END);
 25     printf("%ld\n",size);
 26     lseek(fd,0,SEEK_SET);
 27     pid_t pid=fork();
 28     if(pid>0)
 29     {
 30         sleep(2);
 31 
 32         char c=0;                                                                                                                                                                                          
 33         off_t count=size/2;
 34         lseek(fd,0,SEEK_SET);
 35         lseek(fd1,0,SEEK_SET);
 36 
 37         for(off_t i=1;i<=count;i++)
 38         {
 39             c=0;
 40             if( read(fd,&c,1)<0)
 41                 ERR("read");
 42             if( write(fd1,&c,1)<0)
 43                 ERR("write");
 44         }
 45         close(fd);
 46         close(fd1);
 47 
 48     }
 49     else if(pid==0)
 50     {
 51 
 52         char c=0;
 53         off_t count=size/2;
 54         lseek(fd,count,SEEK_SET);
 55         lseek(fd1,count,SEEK_SET);
 56         for(off_t i=count+1;i<=size;i++)
 57         {
 58             c=0;
 59             if( read(fd,&c,1)<0)
 60                 ERR("read");
 61             if( write(fd1,&c,1)<0)
 62                 ERR("write");
 63         }
 64         close(fd);
 65         close(fd1);
 66 
 67     }
                                                  

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值