子进程恢复时不发出SIGCHLD信号
这是我的信号处理器:子进程恢复时不发出SIGCHLD信号,c,unix,process,signals,C,Unix,Process,Signals,这是我的信号处理器: pid_t pid; int status; while (pid = waitpid(-1, &status, WNOHANG|WUNTRACED|WCONTINUED)) { printf("resume? %d\n", WIFCONTINUED(status)); } 即使我向子进程发送SIGCONT,它也总是打印出0。如果我使用killpg向一组进程发送SIGCONT,则某些进程指示恢复,但某些进程不指示恢复。有人能告诉我为什么会发生这种情况吗?
pid_t pid;
int status;
while (pid = waitpid(-1, &status, WNOHANG|WUNTRACED|WCONTINUED))
{
printf("resume? %d\n", WIFCONTINUED(status));
}
即使我向子进程发送
SIGCONT
,它也总是打印出0。如果我使用killpg
向一组进程发送SIGCONT
,则某些进程指示恢复,但某些进程不指示恢复。有人能告诉我为什么会发生这种情况吗?SIGCHLD信号只在孩子停止或终止时出现,而不是在执行恢复时出现。SIGCHLD信号只在孩子停止或终止时出现,而不是在执行恢复时出现。代码段缺少两个右括号。另外,请记住,waitpid
在出错时返回-1
,并且由于-1
为非零,则认为是真的。代码段缺少两个右括号。另外,请记住,waitpid
在出错时返回-1
,并且由于-1
为非零,因此认为它为真。