从我在网上看到的情况来看,您在 c++ 中调用 kill 方法是为了查看进程是否存在。问题是 PID 被 rycled 而你寻找的相同 PID 可能不是同一个过程。我有一个程序有两个进程,它们不是彼此的孩子。与他们沟通的唯一方式是IPC。我希望我的主机进程在客户端进程关闭时关闭。为了做到这一点,我必须知道客户的进程何时不再存在。
在 Windows 中,他们有所谓的进程处理程序,它将保留 PID 不被回收,直到创建句柄的进程关闭。我想知道如何在 macOS/Linux (POSIX) 系统上实现这一点。
作为 PID 的有问题的代码被回收。
if (0 == kill(pid, 0))
{
// Process exists.
}