gpt4 book ai didi

macos - 与子进程共享 Mach 端口

转载 作者:行者123 更新时间:2023-12-01 18:56:58 31 4
gpt4 key购买 nike

我正在对 Mac OS X 上可用的不同 IPC 机制(管道、套接字、System V IPC 等)进行比较,我想看看 Mach 端口与更高级别的替代方案相比如何。但是,我遇到了一个非常基本的问题:跨进程(特别是跨父进程和子进程)获取端口的发送权限。

与文件描述符不同,ports are generally not carried over to forked processes 。这意味着必须建立其他方式来转移它们。我能找到的唯一相关页面是 this one ,并且他们在更新中声明他们的方法不再有效并且从未保证有效,即使该方法是 suggested by an Apple engineer in 2009 。 (这意味着替换引导端口,而现在这样做会破坏 XPC。)他们建议的替换使用已弃用的函数,因此这不是一个非常有吸引力的解决方案。

此外,我喜欢旧解决方案的一件事是端口在使用它的进程之间保持相当私密。不需要广播端口的存在,就像管道(来自 pipe 调用)一旦 fork 就可以工作一样。 (如果有其他解决方案,我可能会接受它,但这有点烦人。)

那么,如何将发送权从父进程传递到 Mach 端口到子进程呢?

最佳答案

bootstrap_register 已弃用,但 bootstrap_check_in 未弃用,可用于注册您的端口,稍后子进程可以使用 bootstrap_look_up< 检索该端口。 (不幸的是,这仍然无法提供您正在寻找的隐私)。

关于macos - 与子进程共享 Mach 端口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15723273/

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