我最近在 unp((,第 5.9 章中阅读了代码,在书中,在处理僵尸时,作者使用
信号(SIGCHLD, sig_chld(;
此外,在sig_chld内部,代码如下:
void sig_chld(int signo){
pid_t pid;
int stat;
pid = wait(&stat);
printf("child %d terminated",pid);
return;
}
我试过这个,我成功地处理了僵尸,但函数 printf 无法正常工作。 为什么? 如果需要更多信息,只需发表评论。 谢谢!!!
信号处理程序中只能使用异步信号安全函数。请参阅人员信号安全中此类功能的说明和列表。