日期:2014-05-16  浏览次数:20670 次

Linux fork() 函数
源程序名是6-5.
使用fork()函数创建子进程,请看图

但是,我杀了了这个子进程后,就这样了:


为什么是 [6-5]<defucnt> 不是杀死了就没了吗?
------解决方案--------------------
我的看法是:3381的父进程是3380,当把3381杀掉后,3380没有去取得3381的状态信息,于是3381就成了僵尸进程。
------解决方案--------------------
这个看下书就理解了。子进程退出后,父进程如果没有获取子进程的状态信息,子进程就变成了一个僵尸进程(就是你看到的defucnt),这个僵尸进程还占用资源,把父进程也停了,就能释放了。