int ccount=0;
void child_handler(int sig){
int child_status;
pid_t pid = wait(&child_status);
ccount--;
}
void fork() {
pid_t pid[N];
int i, child_status;
ccount=N;
signal(SIGCHLD, child_handler);
for (i=0; i<N ; i++) {
if ((pid[i]=fork())==0) {
sleep(1); exit(0);
}
while (ccount>0) pause();
}
在此函数中,假设任何一个父进程在while和paust()之间接收到最后一个SIGCHLD信号Nth信号。然后它无法退出(),因为它无法从while循环中逸出。 那我可以说这个程序异常退出吗?