IPC——命名管道FIFO

本文介绍了一种进程间通信方式——命名管道(FIFO),它允许不相关进程间通过文件系统进行通信。文章通过示例代码展示了客户端与服务器端如何建立FIFO连接,并实现了基本的数据交换。

上一篇介绍了进程间通信的最简单的方式:PIPE。由于PIPE通过文件描述符来引用,只能用在相关进程(父子进程)间通信,限制了其使用范围。IPC 的另一种简单方式时命名管道:FIFO。

FIFO能用在不相关进程进程间的通信,引用FIFO的方式是通过UNIX的文件系统,使用文件名。尽管PIPE和FIFO具有相同"进程持续"特性,但是,不相关的进程通过引用FIFO关联的文件名,能够进行通信。FIFO和普通文件一样,拥有文件引用计数,通过unlink作用于FIFO和其作用于普通文件效果一样:如果FIFO的链接数(保存在Inode )为0,并且没有任何进程打开该FIFO ,那么unlink将会回收它的空间。

但是,FIFO不能用在网络文件系统NFS中,只能用在本地文件文件系统中。

特点:

(1)不相关进程间可以同信

(2)拥有文件系统提供的文件名

(3)生命周期时进程持续的

下面的代码是一个简单的client-server系统,描述了多个client和一个server通信的场景,server的实现方式时“迭代方式”。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值