在linux中返回waitpid()的值

时间:2015-02-25 20:05:01

标签: linux signals waitpid

当waitpid()函数以下列方式实现时,当孩子由于SIGTSTP信号而停止时它会返回什么?为什么?

waitpid(pid,&status,WUNTRACED);
其中pid是任何进程的进程ID,状态是int类型。

它是否也会暂停通话过程,直到找不到任何停止或终止的孩子或它不会影响正在进行的过程?

1 个答案:

答案 0 :(得分:2)

返回已停止的子进程的进程ID。

POSIX声明

  

WUNTRACED

     

pid指定的任何已停止的子进程的状态,以及自停止后尚未报告的状态,也应报告给请求进程。

  

如果由于子进程的状态可用而返回wait()waitpid(),则这些函数将返回一个值,该值等于报告了status的子进程的进程ID 。 (...)

here

如果有多个子流程并且呼叫中的pid0或更少,则此返回值当然会更有趣,因此您不会知道PID的值提前报告了孩子的过程,但你得到了它。