进程间通信之Linux命名管道编程

命名管道

管道(匿名管道)的使用局限性大,这与管道的实现机制有关。而命名管道(Named Pipe)不仅可在同一台计算机的任意不同进程之间通信,而且还可以在跨越一个网络的不同计算机的不同进程之间,支持可靠的、单向或双向的数据通信。

命名管道不同于管道之处在于它提供一个路径名与之关联,以命名管道的文件形式存在于文件系统中。这样,即使与命名管道的创建进程不存在亲缘关系的进程,只要能够访问该路径,就能够彼此通过命名管道相互通信。简单来说,虽然管道和命名管道都是实实在在的文件,但前者没有公开的文件名,用户在文件系统中不能直接观察并访问到它;命名管道则是存在于文件系统中的,任何具有访问权限的进程都可以访问。

管道和命名管道的区别总结如下:

·命名管道可以用于任意两个进程间的通信,并不限制这两个进程同源,因此命名管道的使用比管道的使用要灵活方便得多。

·命名管道作为一种特殊的文件存在于文件系统中,而不像管道一样只存在于内存中(使用完毕就会消失)。当进程对命名管道的使用结束后,命名管道依然存在于与文件系统中,除非对其进行删除操作,否则不会消失。

需要注意的是,命名管道是一种严格遵循FIFO规则,不支持lseek函数等文件定位操作。

命名管

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值