OS X IPC在C中获取进程ID

时间:2015-11-24 14:40:04

标签: c++ c macos ipc pid

是否有任何类似进程间通信的服务器客户端允许:

  • 服务器可靠地获取已连接客户端的进程ID
  • 任何连接到服务器的客户端应用程序
  • 适用于C / C ++
  • 可选:在Linux上也可以使用

1 个答案:

答案 0 :(得分:2)

由于您的服务器以root权限运行,因此您可以使用task_for_pid()和双向连接。首先,客户端将通过服务器上的一些特殊引导端口将其pid发送到服务器,然后服务器将通过task_for_pid将pid解析为任务端口,然后使用mach_port_insert_right插入发送权限到一个新的端口进入客户端。然后,新端口专属于客户端,您知道客户端具有哪种安全级别。