得到一个死的进程C的pid

时间:2017-11-10 15:59:59

标签: signals

signal(SIGCHLD , del_pid); 

您好,我在C中使用该代码删除数组中的pid,但是当我的进程终止时,我的函数del_pid总是收到17作为pid,问题是什么? 感谢

1 个答案:

答案 0 :(得分:0)

  

我的函数del_pid总是收到17 pid

不,信号处理程序没有给出 PID 作为参数,因为你可以通过调用getpid()轻松获得它,并且对于给定的进程,它永远不会改变。

根据docs,传递给信号处理程序的值为signum,信号数字。这允许您对多个信号使用相同的信号处理程序,并根据收到的信号决定做什么(例如同样处理SIGTERMSIGQUITSIGINT

如果您查看Linux signal list,您确实可以看到SIGCHLD17,这就是您在处理程序中获得的内容。