开发者学堂课程【物联网开发- Linux 高级程序设计全套视频:命名管道的概述】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/660/detail/11035
命名管道的概述
无名管道
只能进行父子进程之间的通信,父进程创建管道,得到文件描述符,创建子进程,将文件描述符继承给子进程,父子进程通过无名管道的文件描述符来操作无名管道。
命名管道(FIFO)和管道(pipe)基本相同,但也有一些显著的不同,其特点是:
1、半双工,数据在同一时刻只能在一个方向上流动。
2、写入 FIFO 中的数据遵循先入先出的规则。
3、FIFO 所传送的数据是无格式的,这要求FIFO的读出方与写入方必须事先约定好数据的格式,如多少字节算一个消息等。
(以上3点与无名管道的特点相同)
4、FIFO 在文件系统中作为一个特殊的文件而存在,但FIFO中的内容却存放在内存中。
5、管道在内存中对应一个缓冲区。不同的系统其大小不一定相同。
6、从 FIFO 读数据是一次性操作,数据一旦被读,它就从FIFO中被抛弃,释放空间以便写更多的数据。
7、当使用 FIFO 的进程退出后,FIFO 文件将继续保存在文件系统中以便以后使用。无绑兔创建的命名管道不能拿到开发板上用。
8、FIFO 有名字,不相关的进程可以通过打开命名管道进行通信。无名管道只能是父子进程通信。