gpt4 book ai didi

unix - 为什么只有相关进程只能使用 pipe() (IPC) 进行通信?

转载 作者:行者123 更新时间:2023-12-03 21:38:21 25 4
gpt4 key购买 nike

为什么使用 pipe() 限制只有父进程和子进程可以通信,为什么不相关的进程不能通信?
为什么一个进程的两个子进程不能使用 pipe() 进行通信?

最佳答案

有限制。

管道使用fd读/写数据,fd是每个进程,一个进程维护一个 fd表,子继承fd table当fork时,各自继承fd同指open file就像在父进程中一样,由内核维护。

Processes that communicate via the same pipe should be related.



这意味着,两个进程都应该知道 2 fd的管道。
<TLPI>说:

The pipe should be created by a common ancestor before the series of fork() calls that led to the existence of the processes.

关于unix - 为什么只有相关进程只能使用 pipe() (IPC) 进行通信?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16243283/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com