1.通道是什么?
通道是两个进程之间进行通信的一种方式,操作形式上是文件,本质上是内存缓冲区。
2.如何创建通道?
①使用命令行创建通道
1)创建匿名通道
shell命令中“|”可以形成进程间的匿名通道。前一个进程的输出可以被后一个进程读入。该方法只适用于本地具有亲缘关系的进程之间的通信。
2)创建命名通道
使用mkfifo或mknod命令创建。
mknod(2): create special/ordinary file - Linux man page
读空管道时,若写端未关闭,则读操作阻塞,否则返回0。
写满管道时,若读端未关闭,则写操作阻塞,否则进程被终止。
②在系统编程中创建通道
1)创建匿名通道
使用pipe函数可创建匿名通道,原型为:int pipe(int pipefd[2]),引用文件为<unistd.h>。
使用write函数和read函数可对管道进行写、读操作。
2)创建命名通道
使用mkfifo函数或者mknod系统调用可以创建命名通道。
3.通道优缺点
优点是简单。
缺点是容量小,速度慢。
4.参考资料
Linux中父子进程、兄弟子进程之间通信方式--匿名管道pipe(适用于有血缘关系的进程)_偕臧-CSDN博客_兄弟进程