进程间通信 有名管道 父子进程实现双向通信

fork()函数:创建父子进程

mkfifo函数: 创建管道文件

通过父子进程实现有名管道之间的双向通信。

具体实现:由一方父进程发送信号,另一方的子进程接受信号;再由一方的子进程发送信号,另一方的父进程接收信号。

代码如下:

 

 实现结果:

 总结:

1.(有名管道)管道文件存在的意义?

为了两个互不相关的进程能够操作同一个管道

进程1创建并打开有名管道得到一个内核中的内存+管道文件+文件描述符

进程2通过打开进程1创建的管道文件就可以得到操作进程1创建的管道(内核中的内存)的文件描述符,最终进程1和进程2访问的就是同一个管道,才能通过这个管道进行通信

2.而无名管道为什么不需要这样?

因为父进程创建了管道(内核中的内存),得到了文件描述符,而子进程可以继承过去这个管道的文件描述符,所有就不需要通过其他办法得到这个管道的文件描述符了

 

  • 0
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值