发出以0
为信号的kill(2)
系统调用.如果调用成功,则表示存在具有此PID的进程.
如果调用失败,并且errno
设置为ESRCH
,则不存在具有这样PID的进程.
引用POSIX标准:
如果sig为0(零信号),则会执行错误判断,但不会执行
请注意,您不能免受竞争条件的影响:可能目标进程已经退出,同时另一个具有相同PID的进程已经启动.或者,流程在您判断之后可能会很快退出,您可以根据过时的信息做出决定.
仅当给定的PID为子进程(当前进程为fork
‘)时,您才能将waitpid(2)
与WNOHANG
选项一起使用,或try 捕获SIGCHLD
个信号.它们不受竞争条件的影响,但只与子进程相关.