Linux如何避免进程僵死 |
发布时间: 2012/8/10 14:18:29 |
一个进程终止但是父进程尚未进行回收,就是僵死。
避免僵死可以调用waitpid等待子进程结束,但是其间父进程一直阻塞。 更好的办法是调用两次fork函数。 源代码如下: #include #include #include int main() { pid_t pid; if((pid = fork()) < 0)//出错 { perror("fork!n"); } else if(pid == 0)//子进程1 {//子进程中创建进程2 if((pid =fork()) < 0)//出错 { perror("fork!n"); } else if(pid > 0)//进程1 { exit(0);//退出 } else//子进程2 { sleep(2); printf("second child, parent pid = %dn", getpid()); exit(0); } } else//父进程 { sleep(3); printf("parent!n"); exit(0); } } 本文出自:亿恩科技【www.enkj.com】 |