《TCP/IP网络编程》 尹圣雨 P183~P193

进程间通信的基本概念

进程间通信 Inter Process Communication意味着两个不同进程间可以交换数据。

只要有2个进程可以同时访问的内存空间,就可以通过此空间交换数据。

进程具有完全独立的内存结构。fork()创建的子进程也不会与父进程共享内存空间。


通过管道实现进程间通信

为完成进程间通信,需要创建管道。管道并非属于进程的资源,而是和套接字一样,属于操作系统(也就不是fork函数的复制对象)。所以,两个进程通过操作系统提供的内存空间进行通信。

#include<unistd.h>
int pipe(int filedes[2]);

成功时返回0,失败时返回-1

filedes[0]:通过管道接收数据时使用的文件描述符,即管道出口。

filedes[1]:通过管道传输数据时使用的文件描述符,即管道入口。


通过管道进程进程间双向通信

向管道传递数据时,先读的进程会把数据取走。

使用两个管道可以避免程序流程的预测或控制。


运用进程间通信

保存消息的回声服务器端 P189~P192