匿名管道通信

匿名管道

  • 管道也叫无名(匿名)管道,它是UNIX系统IPC(进程间通信)的最古老形式,所有的UNIX系统都支持这种通信机制。
  • 统计一个目录中文件的数目命令:ls | wc -l。为了执行该命令,shell创建了两个进程来分别执行ls和wc。
  • 上述 | 称之为管道符,会将ls得到的结果通过管道传输给wc进程。
    image

管道特点

  • 管道是在内核内存中维护的缓冲器,这个缓冲器的存储能力是有限的,不同的操作系统大小不一定相同
  • 管道拥有文件的特征:读操作和写操作。匿名管道没有文件实体,有名管道有文件实体。
  • 一个管道是一个字节流,使用管道时不存在消息或消息边界的概念,从管道读取数据的进程可以读取任意大小的数据块,而不管写入进程写入管道的数据块的大小是多少。
  • 通过管道传递的数据时顺序的,从管道中读取出来的字节顺序和写入进去的字节顺序是一样的。
  • 管道时半双工的,一端用于写入,一段用于读取
  • 从管道中读数据是一次性操作,数据一旦被读走,他就从管道中抛弃,释放空间以便写入更多的数据。
  • 匿名管道只能在具有公共祖先的进程之间使用。
    image

管道的创建

image

posted @ 2023-02-08 22:52  小秦同学在上学  阅读(39)  评论(0编辑  收藏  举报