0

This code is just handling the SIGCHLD signal, but as you can see, the parent process should ignore this SIGCHLD signal according to the signal function. But in fact, the parent process will omit the signal function, and handling the child process using "wait". I wonder why the parent do not ignore the SIGCHLD signal?

1int main(argc,argv) { 
2    int argc; 
3     char *argv[] int i,ret_val,ret_code;
4     if(argc>1) 
5         signal(SIGCLD,SIG_IGN); 
6     for(i=0;i<10;i++) 
7         if(fork()==0) { 
8             printf("child proc %x\n",getpid()); 
9             exit(i); 
10         } 
11        ret_val=wait(&ret_code); 
12 }
1
Contributor
0
Replies
2
Views
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.