这会是一系列文章,讲解的内容也很简单,文章的目的是让自己的知识固话和文档化,以备自己不时的复习,同时也希望能够给予初学者一些帮助。
在代码编程过程中,进程之间进行通信是很常见的需求,它有个专业的名词 IPC,能够实现 IPC 的手段有许多,管道(Pipe)是其中一种。
本文的示例是用 C++ 编写的,不熟悉 C++ 的同学,用 c 也是可以实现效果的。
管道(Pipe)
管道的本质是一个文件,它具备如下特点:
- FIFO 先进先出
- 单向通信
先存进去的信息,最先被读取出来。
只可以从固定的一端读,从另一端写,这是它被称为单向的原因。
管道可以分为
- 无名管道
- 有名管道
无名管道
无名管道创建的方式很简单通过 linux 系统调用就好了。
#include <unistd.h>
int pipe(int fd[2])
如果创建失败,则会返回 -1,反之返回 0.
创建成功后