c语言系统编程十一:七种Linux进程间通信方式总结

七种Linux进程间通信方式总结

  • 一 进程间通信方式有七种
  • 二 七种通信方式特点对比

一 进程间通信方式有七种

同一主机的进程间通信:
	1. 无名管道
	2. 有名管道(命名管道)
	3. 消息队列
	4. mmap
	5. 共享内存
	6. 信号


不同主机的进程间通信:
	1. socket(网络通信)

二 七种通信方式特点对比

1. 无名管道: 有血缘关系的进程间通信;单方向通信;一对一通信;先进先出;数据无格式;数据读取后就丢弃;数据存放在逻辑内存中
2. 有名管道: 有血缘关系或无血缘关系的进程间通信;单方向通信;一对一通信;先进先出;数据无格式;数据读取后就丢弃;数据存放在物理内存中且被抽象成文件
3. 消息队列:有血缘关系或无血缘关系的进程间通信;多方向通信;多对多通信;按消息类型收取消息、同类型是先进先出;数据有格式;数据读取后就丢弃;数据存放在由内核维护的一段内存中
4. mmap(存储映射):有血缘关系的进程间通信;多方向通信;多对多通信;数据无格式;数据读取后还存在、写入数据后覆盖以前的数据;数据存放在磁盘中,将一个磁盘文件和进程的一块虚拟内存做映射
5. 共享内存:有血缘关系的进程间通信;多方向通信;多对多通信;数据无格式;数据读取后还存在、写入数据后覆盖以前的数据;数据存放在物理内存中,将一段物理内存和进程的一段虚拟内存做映射
6. 信号:简单,不能携带大量信息,满足某个设定条件才发送
7. socket:不同主机间的进程通信(网络通信)

你可能感兴趣的:(c语言,C语言系统编程,linux,c语言,系统编程)