该程序可以正常退出吗?

时间:2019-12-05 12:06:17

标签: c child-process

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循环中逸出。 那我可以说这个程序异常退出吗?

0 个答案:

没有答案