一个僵尸进程产生的过程是:父进程调用fork创建子进程后,子进程运行至其终止。进程终止后有些信息对于父进程和内核还是很有用的,例如进程的ID号、进程的退出状态、进程运行的CPU时间等。因此进程运行终止后,系统会回收所有内核分配给它的内存、关闭它所打开的文件等,但是还会保留以上极少的信息,以供父进程使用,系统会向父进程发送SIGCHLD
信号,父进程应及时调用wait
函数来为子进程收尸,做一些收尾工作。但如果父进程没有及时调用wait
函数,则子进程的进程状态变成ZOMBIE
,即僵尸进程
。僵尸进程
会一起占用内存且无法通过使用
【C/C++】多进程:僵尸进程
最新推荐文章于 2024-08-08 22:28:45 发布
本文介绍了C/C++中多进程环境下僵尸进程的产生原因。当子进程运行完毕后,系统保留其部分信息供父进程使用,如果父进程未及时处理,子进程将变为僵尸状态,占用资源。示例代码展示了如何通过wait()函数避免僵尸进程的出现。下篇将探讨信号量的监听和处理函数。
摘要由CSDN通过智能技术生成