Linux高级服务器开发《进程间通信》

Linux高级服务器开发《进程间通信》

Linux服务器《进程间通信》------->开课时间(20:00--22:00)

欢迎来到博新教育 Linux C/C++高级开发课堂
领取免费学习资料加老师的QQ:726920220

一、进程间通信的基本概念
进程间通信(Inter Process Communication)意味着两个不同进程间可以交换数据,我们为完成这一点操作,操作系统中应用提供两个进程可以同时访问的内存空间。

二、通过管道实现进程间通信
基于管道(PIPE)的进程间通信结构模型。如图所示:

创建管道函数:
#include <unistd.h>

int pipe(int filedes[2]);
成功时返回0,失败时返回-1。
filedes[0]:通过管道接收数据时使用的文件描述符,即管道出口;
filedes[1]:通过管道传输数据时使用的文件描述符,即管道入口;

父进程调用该函数时将创建管道,同时获取对于出入口的文件描述符,此时父进程可以读写同一管道。但是父进程的目的是与子进程进行数据交换,因此需要将入口或出口中的1个文件描述符传递给子进程。

如何完成传递呢?就是调用fork函数。

三、通过管道进行进程间双向通信
创建2个进程通过1个管道进行双向数据交换。如图所示:

原文地址:https://www.cnblogs.com/chinasirius/p/13436421.html