首页 > 试题广场 >

编写一unix程序,防止僵尸进程的出现。

[问答题]
编写一unix程序,防止僵尸进程的出现。
1. 父进程调用wait或waitpid等待子进程结束。
2. 两次fork(),使子进程成为孤儿进程。
3. 父进程处理SIGCHILD信号,使用wait进行处理。 

int main()
{
    int pid;
    pid = fork();
    if(pid == 0)
    {
        // do children 
    }
    else
    {
        signal(SIGCHLD, (sig_t )sig_chld_handler);
        // do parient    
    }
}
void sig_chld_handler(void) {
 //other proccess
 while (waitpid(-1, NULL, WNOHANG) > 0);
}
编辑于 2015-08-05 00:13:47 回复(0)