不可靠信号SIGCHLD丢失的问题

如果采用

void sig_chld(int signo)
{
       pid_t pid;
       int stat;
        
       while((pid = waitpid(-1, &stat, WNOHANG)) > 0){
               printf("child %d terminated\n", pid);
       }
        return;
}

 

来处理子进程退出的问题,那么如果多个SIGCHLD叠加,造成丢失会怎样。

 

回答,的确会丢失,但是没问题,因为这个处理函数里面是一个循环,会把所有子进程都处理完。

 

posted @ 2017-02-04 21:56  blcblc  阅读(617)  评论(0编辑  收藏  举报