c /进程通信—— 管道

管道概念

管道是最基础简单的ipc通信机制,用于有亲缘关系的进程之间的相互通信。

管道特点
  1. 其本质是一个伪文件(实为内核缓冲区)
  2. 由两个文件描述符引用,一个表示读端,一个表示写端。
  3. 规定数据从管道的写端流入管道,从读端流出。
  4. 数据一旦被读走,便不在管道中存在,不可反复读取。
  5. 由于管道采用半双工通信方式。因此,数据只能在一个方向上流动。
  6. 只能在有公共祖先的进程间使用管道。
与管道相关的函数
类型创建/打开关闭
单工popen()pcloseread()write()
半双工pipe()/open()close()read()write()
FIFO半双工mkfifo()/openclose()/unlink()read()write()
全双工socketpair()close()read()write()

tips:
1对管道的操作默认是阻塞的
2操作管道的进程销毁之后,管道会自动释放。
3管道的实现方式是消息队列,逻辑上的环形队列。

管道通信实例

利用管道实现父子通信,子进程往管道写东西,父进程读取管道里面的东西。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值