首页 > 代码库 > 不可靠信号SIGCHLD丢失的问题

不可靠信号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叠加,造成丢失会怎样。

 

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

 

不可靠信号SIGCHLD丢失的问题