3
我在Centos 4上,在我的C++程序中使用kill(pid,0)来检查目前是否有一个正在运行的给定pid的进程。我开始怀疑有一种竞争条件,即一个进程开始后不久,有一个小窗口,即使实际上有一个进程正在运行,kill(pid,0)也不会返回零。是否kill(pid,0)保证在进程存在时返回0?
这是一个已知的问题?当pid实际存在但刚刚启动时,kill()会返回非零值吗?如果kill()不是一个可靠的测试存在,有没有更好的方法来执行此测试?
如果没有这样的PID,它也返回ESRCH。 –