Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/62.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
子进程恢复时不发出SIGCHLD信号_C_Unix_Process_Signals - Fatal编程技术网

子进程恢复时不发出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
为非零,因此认为它为真。