现在写我正在将一些代码从 AIX 迁移到 SUSE Linux。在 AiX 中,我们有以下代码正常工作:
int Wait_for_child()
{
alarm(10);
while (((p_id = wait(&return_code)) > 0) ||(child_signal == 1)) {
alarm(0);
.......Do Something
}
return TRUE;
}
我们通过从另一个函数传递 SIGINT 来杀死孩子,并且我们成功地杀死了它。
if ((status = kill(proc_info->process_id, SIGINT)) != 0)
{
log.printf("fail");
return(FAIL)
}
但在 LINUX 中,等待系统调用不会返回最近终止的子进程 ID。请分享你的想法。谢谢