管道
管道的基本概念
什么是管道
当从一个进程连接数据流到另一个进程时,这就是一个管道(pipe)。
ps -aux ``|`` grep root
中的“|”就代表管道。
- shell负责安排两个命令的标准输入和标准输出。
- ps的标准输入来自终端鼠标、键盘等。
- ps的标准输出传递给grep,作为它的标准输入。
- grep的标准输出连接到终端显示器屏幕时。
管道的分类
函数
pipe()函数
作用
创建一个匿名管道,用于进程间通信的单向数据通道。
man pipe
#include <unistd.h>
int pipe(int pipefd[2]);
数组pipefd是用于 返回两个引用管道末端的文件描述符
它是一个由两个整数类型的文件描述符组成的数组的指针。
pipefd [0] 指管道的读取端, pipefd[1]指向管道的写端。
pipe()函数还会返回一个int类型的变量,如果为0则表示创建匿名管道成功,如果为-1则表示创建失败,并且设置errno。