哪些IPC方法只能用于相关流程?

Posted

技术标签:

【中文标题】哪些IPC方法只能用于相关流程?【英文标题】:What IPC methods can only be used for related processes? 【发布时间】:2015-10-28 01:32:55 【问题描述】:

我忽略了以下重要问题,直到我看到http://mywiki.wooledge.org/BashFAQ/027

两个不相关的进程不能使用参数、环境或stdin/stdout进行通信;需要某种形式的进程间通信 (IPC)。

希望我能对大局有所了解。

哪些IPC方法只能用于相关进程,不能用于无关进程?

哪些IPC方法可以不受此限制?

主要关注Linux。

【问题讨论】:

【参考方案1】:

唯一的“相关”进程是子进程。如果进程 A 派生出进程 B,那么进程 A 可以连接进程 B 本身的标准输入和标准输出,以便它可以与进程 b 对话。这就是“系统”调用的工作原理。

否则你必须做他提到的事情(或共享内存或 unix 套接字)

【讨论】:

谢谢。在各种 IPC 方法中,哪些方法尤其不适用于无关的流程? 父 => 子标准输入标准输出连接 比如en.wikipedia.org/wiki/Inter-process_communication#Approaches中的哪些方法不是针对无关进程的,哪些是针对的? 我已经回答了好几次了。 stdin 标准输出重定向仅适用于相关(父子)进程。所有其他人都为任何事情工作

以上是关于哪些IPC方法只能用于相关流程?的主要内容,如果未能解决你的问题,请参考以下文章

系统命令提示符(cmd)的使用方法有哪些?

将 Windows 命名管道用于 IPC 的一种有效方法

IPC方法的选择

Linux IPC之管道和FIFO

进程和线程之间的通信

IPC机制之Binder连接池