本章所有示例代码>>github
11.1 进程间通信的基本概念
进程间通信(InterProcess Communication,IPC)意味着两个不同进程间可以交换数据,为了完成这一点,操作系统中应该提供两个进程可以同时访问的内存空间。
1. 对进程间通信的基本理解
只要有两个进程可以同时访问的内存空间,就可以通过此空间交换数据,但进程具有完全独立的内存结构。就连通过fork函数创建的子进程也不会与父进程共享内存空间。因此,进程间通信只能通过其他特殊方法完成。
2. 通过管道(PIPE)实现进程间通信
为了完成进程间通信,需要创建管道。管道并非属于进程的资源,而是和套接字一样,属于操作系统(也就不是fork函数的复制对象)。所以,两个进程通过操作系统提供的内存空间进行通信。
#include <unistd.h>
int pipe(int