pipe()

 1 #include<unistd.h>
      2 #include<stdio.h>
      3 #include<sys/types.h>
      4
      5 int main()
      6 {
      7         int fd[2],p;
      8         pid_t pid;
      9         char buf[7]={"hi all"},buf2[7];
     10         p=pipe(fd);
     11         if (p<0)
     12         {
     13                 perror("pipe error");
     14                 exit (1);
     15         }
     16         pid=fork();
     17         if (pid<0)
     18         {
     19                 perror("fork error");
     20                 exit (1);
     21         }
     22         if (pid>0)
     23         {
     24                 close(fd[0]);
     25                 write(fd[1],buf,7);
     26                 wait(NULL);
     27         }
     28         else
     29         {
     30                 close(fd[1]);
     31                 read(fd[0],buf2,7);
     32
     33
     34         printf("the result is %s/n",buf2);
     35
     36         }
     37         return (1);
     38 }
     39
     40 //note : 把一个字符串从一个管道传到另一个管道
     41 //       要用到ipc的原因是因为进程中的全局变量不能共享访问
     42 //      必须要经过内核缓存区中转一下
     43 //      write 对应的是stdout  read 对应的是stdin

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值