zuoye5.8

21 //    使用 dup2 实现错误日志功能
22 //    使用 write 和 read 实现文件的拷贝功能,
23 //    注意,代码中所有函数后面,紧跟perror输出错误信息,
24 //    要求这些错误信息重定向到错误日志 err.txt 中去
25 int main(int argc, const char *argv[])
26 {
27      int errfd=open("./err.txt",O_RDONLY|O_WRONLY|O_CREAT|O_TRUNC,0666
28      if(errfd==-1)
29      {
30          perror("err");
31          return 1;
32      }
33 
34      int newerr=dup(2);
35         if(newerr==-1)
36         {
37             perror("newerr");
38             return 1;
39         }
40     dup2(errfd,2);                                                    
41 
42     int rfd=open("./file1.txt",O_RDONLY|O_CREAT,0666);
43     if(rfd==-1)
44     {
45         perror("ropen");
46         return 1;
47     }
48 
49 
50     char rbuf[128]={0};
51     int rcount=read(rfd,rbuf,128);
52     printf("成功输出%d个数据\n",rcount);
53     close(rfd);
54 
55 
56     int wfd=open("./file2.txt",O_WRONLY);
57     if(wfd==-1)
58     {
59         perror("wopen");
60         return 1;
61     }
62 
63 
64     int wcount=write(wfd,rbuf,rcount);
65     printf("成功输入%d个数据\n",wcount);
66     close(wfd);
67 
68     dup2(newerr,2);
69 
70     return 0;
71 }
                                                                         
                                                                         
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值