IPC进程通信方式——管道通信方式

管道分无名管道和有名管道(FIFO)

  管道通信是Unix进程通信最早的方式,只适用于两个进程之间通信,网格通信就很复杂,而且它是半双工的,一个管道一般只用于一个方向。

  关于为什么是半双工的:如果你又要读又要写,你的可能读到自己写的。无名管道和有名管道读写方式区别不大,只是亲缘进程可不可用的关系。

  无名管道,要共享文件描述符,fork之后管道的两个读写描述符一起用指向一样,所以可以进行通信。 非亲缘进程不能通过名字找到,但是有名管道是可以显式地找到,通过文件描述符打开。

  下面是无名管道的示例代码(第二六行buf和fd[0]写反了),但是备份已经删除了,代码写的很乱,建议自己练练手:
在这里插入图片描述
  我们要明白的是管道的原理,管道用的是内存中的高速缓存,管道文件不在硬盘中,它用的是伪文件系统,不属于任何文件系统,只在内存中存在(有名管道会创建文件但其实不在硬盘中)。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值