- 管道的定义
管道是一个进程连接数据流到另一个进程的通道,它通常是将一个进程的输出通过管道连接到另一个进程的输入,即将一个进程的输出作为另一个进程的输入。
管道分为匿名管道和命令管道,匿名管道主要用于父子进程间通信;命名管道主要用于非父子进程间通信。 - 匿名管道
匿名管道是不能在文件系统中以任何方式看到的半双工管道。半双工意味着管道的一端只读或只写。父子进程间匿名管道通信示意图如下图所示(其中pipefd是管道的文件描述符):
可以使用pipe()函数来创建一个匿名管道,其函数原型如下:
#include <unistd.h>
int pipe(int pipefd[2]);
函数执行成功返回0,否则返回-1。
参数pipefd是一个文件描述符数组,对应着打开管道的两端,其中pipefd[0]为读端,pipefd[1]为写端