【Linux】进程间通信(管道)

本文详细介绍了Linux系统中的管道通信机制,包括无名管道和有名管道的概念、特点、分类以及操作方法。管道是一种半双工通信方式,数据在内存中缓存,遵循先进先出原则。无名管道限于父子进程间通信,而有名管道可在任意进程间通信。通过`mkfifo`创建有名管道,使用`pipe`创建无名管道,并分别进行了操作示例。
摘要由CSDN通过智能技术生成

管道

  • 管道是一种半双工通信机制
  • 管道的数据都是通过内存空间缓存的

1、实现进程间通讯的原理:就像现实中管道的两端一样,由一个进程进行写操作,其余的进程进行读操作。如果管道为空,那么read 会阻塞;如果管道为满则 write 会阻塞

2、分类:管道可以分为有名管道和无名管道两类。

3、区别

 (1)有名管道:可以在任意进程之间进行通讯,通讯是双向的,任意可读可写,但同一时间只能一端读,一端写。

 (2) 无名管道:只能在具有亲缘关系的进程(父子进程)间通讯,网络间通讯,并且是单向的,只能一端读另一端写。

4、管道的特点:

  • 无论有名还是无名,写入管道的数据都在内存中
  • 通讯数据遵循先进先出的原则,并且都是半双工通讯的(通信方式有单工、半双工、全双工)
  • 有名和无名管道的区别:有名可以在任意进程间使用,而无名主要在父子间管道的实现

通信方式 

   全双工:A可到B,B也可到A,如网络

   半双工

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值