1.常用的进程间通信方式介绍
1.1 linux支持的经典的进程间通信
- 无名管道
- 有名管道(FIFO)
- 信号
1.2 system V 进程间通信
由贝尔实验室研发的进程间通信方式。其特点为只能在本机的进程之间进行通信。
1.3 网络IPC socket
由加州伯克利分校研发的进程间通信方式。其特点为既可以进行本机的进程间通信,又可以跨越机器,进行不同pc机的进程间通信。
2. 管道
2.1 管道简介
众所周知作为UNIX IPC中最老的一种形式管道,是所有UNIX系统都提供的一种通信机制,因而它应用的范围非常广泛。例如我们可以使用管道符“|”来连接进程。在Linux系统中,由管道连接起来的进程可以自动运行,就如同在他们有一个数据流一样。根据管道的适用范围将其分为:无名管道(pipe)和有名管道(fifo)。
2.2 无名管道
2.2.1 管道的实质
一个管道实际上就是个只存在于内存中的文件,对这个文件的操作要通过两个已经打开文件进行,它们分别代表管道的两端。管道是一种特殊的文件,它不属于某一种文件系统,而是一种独立的文件系统,有其自己的数据结构。类似时空隧道的概念,建立两个进程之间的通讯桥梁。
数据的读出和写入:一个进程向管道中写的内容被管道另一端的