根据我的理解,C 管道就像一种特殊的文件,在内部,内核在表中跟踪每个进程的打开和关闭。 see the post here
从这个意义上说:
- 是否可以将 1 个管道连接到多个进程?
- 如果可能的话,多个进程是否可以读取相同的数据?
- 如果 2 是可能的,他们会读取相同的数据,还是读取数据“清空”数据?
例如:进程1写入pipe,进程2,3,4能否读取进程1写入的数据?
最佳答案
是的,多个进程可以读取(或写入)一个管道。
但是 进程的数据不会重复。一旦一个进程从管道中读取了数据,它就会丢失并且仅供实际读取它的进程使用。
相反,如果您有多个进程写入单个管道,则无法区分数据或数据来自哪个进程。
关于单个管道是否可以被多个进程连接和读取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69325220/