c语言 - 为什么我不能在 POSIX 信号处理中使用 I/O?



我最近在 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 无法正常工作。 为什么? 如果需要更多信息,只需发表评论。 谢谢!!!

信号处理程序中只能使用异步信号安全函数。请参阅人员信号安全中此类功能的说明和列表。

最新更新