一、何为管道?
管道是一种最基本的IPC机制,由pipe函数创建:
#include <unistd.h>
int pipe(int filedes[2]);
调用pipe函数时在内核中开辟一块缓冲区(称为管道)用于通信,它有一个读端一个写端,然后通过filedes参数传出给用户
程序两个文件描述符,filedes[0]指向管道的读端,filedes[1]指向管道的写端(很好记,就像0是标准输出1是标准输出⼀样)。
所以管道在用户程序看起来就像一个打开的文件,通过read(filedes[0]);或者write(filedes[1]);向这个文件读写数据其实
是在读写内核缓冲区。 pipe函数调用成功返回0,调用失败返回-1。
利用管道实现进程间通信的过程:
1. 父进程调用pipe开辟管道,得到两个文件描述符指向管道的两端。