https://github.com/realingy/ipcs
Linux中管道的一个应用实例
cat test.txt | grep -E "TEST" | cut -d = -f 2
前一条命令的输出作为后一条命令的输入,即实现了进程间的通信。
管道的实现机制是实现两个进程分别读和写,以使得两者之间实现资源共享,共享的资源叫pipe文件。管道的特点是单向、先进先出、文件固定大小。写进程在管道的尾部写数据,读进程在管道的头部读数据。数据是一次性的,读数据就是取数据,数据被取走后管道中就不存在这段数据了。注意,读进程在写进程完成写数据之前,会阻塞运行,同理读进程在管道满的情况下试图写数据,写不成功就会阻塞。
实例:无名管道实现父子进程之间的通信
1 #include <stdio.h>
2 #include <stdlib.h>
3 #include <string.h>
4
5 #define SIZE 256
6
7 int main()
8 {
9 int processed=0;
10 const char data[]="hello pipe!";
11 char buff[SIZE];
12 memset(buff,'