1.进程间通信
每个进程各自有不同的用户地址空间,任何一个进程的全局变量在另一个进程中都看不到,所以进程之间要交换数据必须通过内核,在内核中开辟一块缓冲区,进程A把数据从用户空间拷到内核缓冲区,进程B再从内核缓冲区把数据读走,内核提供的这种机制称为进程间通信。
不同进程间的通信本质:进程之间可以看到一份公共资源;而提供这份资源的形式或者提供者不同,造成了通信方式不同。
2.进程间通信方式
①管道(pipe),流管道(s_pipe)和命名管道(即FIFO文件)
②信号(signal)
③信号量(semophore)
④消息队列(message queue)
⑤共享内存(shared memory)
⑥套接字(socket)
3.管道(pipe)
3.1 管道的创建
管道是由调用pipe函数来创建
#include <unistd.h>
int pipe (int