Linux 命名管道

Linux 命名管道的概念

文章笔记。原文章:IPC - Named Pipes

匿名管道

  • 使用|创建。
  • 由内核创建的内存缓冲区。数据不会落盘。
  • 可见性:只有caller进程,和它的子进程可见。包含2个fd,一个用于read,一个用于write。
  • 数据流是单向的。一旦read,数据立即从缓冲区消失。

命名管道

  • 使用mkfifo创建。
  • 管道名以磁盘文件形式出现。和普通文件的区别是,命名管道文件永远是0字节(因为只是进程间通信方式)。
  • 可见性:类似普通文件,所有进程都可见。
  • 数据流可以双向。

命名管道的特性: 在至少有一个并发读取器之前,没有字节被写入到命名管道缓冲区

这种行为确保在实际写入缓冲区之前,写入到命名管道的数据不会丢失,并确保在写入缓冲区之前有一个准备处理数据的使用者。它有助于使用命名管道同步写入和读取进程之间的通信。

Built with Hugo
Theme Stack designed by Jimmy