1

这是我的信号处理程序:

pid_t pid;
int status;
while (pid = waitpid(-1, &status, WNOHANG|WUNTRACED|WCONTINUED))
{
     printf("resume? %d\n", WIFCONTINUED(status));
}

即使我将 a 发送SIGCONT给子进程,它也总是打印出 0 。如果我使用 将 a 发送SIGCONT到一组进程killpg,则表明某些进程要恢复,但有些进程不会。有人能告诉我为什么会这样吗?

4

1 回答 1

1

SIGCHLD信号仅在子进程停止或终止时发出,而不是在执行恢复时发出。

于 2012-05-29T05:41:30.507 回答