0

我有程序将信号 SIGCHLD 发送到系统 TWICE 中的所有其他进程。问题是,它只发送一次。

发送信号的程序:

 int main(){
 kill(-1, SIGCHLD);   
 sleep(8);
 kill(-1, SIGCHLD);
 return 0;}

程序获取信号:

int main(){
struct sigaction sigchldHandler;
sigchldHandler.sa_flags = 0;
sigset_t BlockMask;
sigfillset(&BlockMask);
sigchldHandler.sa_mask = BlockMask;
sigchldHandler.sa_handler = sigchldFunction;
if( sigaction( SIGCHLD, &sigchldHandler, NULL ) != 0 ){
      perror( "sigaction() error\n" );}
    while(1){
       pause()}
return 0;
}

功能是:

void sigchldFunction(int signal){
write(1, "gets here only once\n", strlen("gets here only once\n"));
startHandling();
}

为什么它没有得到第二个信号,只有第一个?...帮助??

4

0 回答 0