首页 > 解决方案 > 没有进程间通信(ipc)的继承句柄有什么意义?

问题描述

从我一直在阅读的内容来看,即使在父子之间,句柄继承似乎也不会进行任何进程间通信。这是真的?因此,您仍然必须想办法从父进程获取句柄值到子进程,例如通过将其作为 CreateProcess() 中的第二个参数传递或将其作为命名共享对象传递。如果是这样,我试图理解它的意义。

它不会为您节省做 ipc 的额外步骤。说孩子以任何方式“继承”了句柄对我来说似乎是骗人的。它继承了什么?是否无法使用父进程创建句柄并将其作为第二个参数传递给 CreateProcess() 调用?不使用所谓的“继承”?

澄清一下,进程 A 调用 CreateProcess() 来启动进程 B。我认为 B 作为 A 的孩子会在更容易的 ipc 方面获得一些好处,但我很失望。似乎为了实际使用所谓的继承句柄,我仍然必须将它作为参数传递给 CreateProcess。像 CreateProcess("myprog.exe", myhandle,...),但似乎我可以将 myhandle 传递到那里,即使没有继承。我试图弄清楚它的意义是什么。

标签: c++windowsinheritancehandle

解决方案


推荐阅读