1 Linux进程间通信方式
1.1 继承早期unix进程间通讯方式
1、无名管道(pipe);
2、有名管道(fifo);
3、信号(signal)。
1.2 System V IPC( Inter-Process Communication 进程间通信)
1、共享内存(share memory);
2、消息队列(message queue);
3、信号灯集(semaphore set)。
以上六种通讯方式用于本地进程间通讯。
1.3 套接字(socket)
套接字进程间通讯方式可用于本地,也可用于网络,但是一般是用于网络。
2 无名管道(pipe)
2.1 无名管道的特点
1、只能用于具有亲缘关系的进程之间的通讯。亲缘关系的进程:父子进程、兄弟进程、祖孙进程。
2、(一个无名管道)单工的通信模式,具有固定的读端和写端。要想实现双工,就得创建两个无名管道。
3、无名管道创建时会返回两个文件描述符,分别用于读管道和写管道。
2.2 无名管道的创建
注:EOF的值为-1。
注:管道内的数据是存在内存中的,只要被其它程序读一次,数据就消失了。
2.3 无名管道(有名管道)的读写特性
2.3.1 读特性
2.3.2 写特性
管道断裂指的是程序异常结束,也就是被信号结束。