当通过以下方式实现了waitpid()函数时,由于SIGTSTP信号而导致subprocess停止时,它会返回什么? 为什么?
waitpid(pid,&status,WUNTRACED);
其中pid是任何进程的进程标识,状态是inttypes。
它是否也暂停调用过程,直到它没有发现任何停止或终止的孩子或不会影响正在进行的过程?
它返回停止的子进程的进程ID。
POSIX指出
WUNTRACED
任何由pid指定的子进程停止状态,以及状态自从停止状态以来还没有被报告的状态也应该被报告给请求进程。
和
如果由于子进程的状态可用而返回
wait()
或waitpid()
,则这些函数将返回一个值,该值等于报告了status
的子进程的进程ID。 (……)
这里 。
如果有多个子进程,并且调用中的pid
等于或小于0
,那么这个返回值当然更有意思,这样您就不会事先知道所报告的子进程的PID,但是无论哪种方式都可以。