单个管道是否可以被多个进程连接并读取

neo*_*hun 2 c linux operating-system kernel

根据我的理解,C 管道就像一种特殊的文件,在内部,内核跟踪表中每个进程的打开和关闭。请参阅此处的帖子

所以从这个意义上来说:

  1. 1个单管道是否可以被多个进程连接?
  2. 如果可以的话,多个进程可以读取相同的数据吗?
  3. 如果 2 可能,它们会读取相同的数据,还是读取数据“清空”数据?

例如:进程1写入管道,进程2,3,4可以读取进程1写入的数据吗?

Som*_*ude 6

是的,多个进程可以从管道中读取(或写入)。

但流程中的数据不会重复。一旦一个进程从管道中读取数据,该数据就会丢失,并且仅可供实际读取它的进程使用。

相反,如果有多个进程写入单个管道,则无法区分数据或数据源自哪个进程。