【C/C++】多进程:僵尸进程

本文介绍了C/C++中多进程环境下僵尸进程的产生原因。当子进程运行完毕后,系统保留其部分信息供父进程使用,如果父进程未及时处理,子进程将变为僵尸状态,占用资源。示例代码展示了如何通过wait()函数避免僵尸进程的出现。下篇将探讨信号量的监听和处理函数。
摘要由CSDN通过智能技术生成

  一个僵尸进程产生的过程是:父进程调用fork创建子进程后,子进程运行至其终止。进程终止后有些信息对于父进程和内核还是很有用的,例如进程的ID号、进程的退出状态、进程运行的CPU时间等。因此进程运行终止后,系统会回收所有内核分配给它的内存、关闭它所打开的文件等,但是还会保留以上极少的信息,以供父进程使用,系统会向父进程发送SIGCHLD信号,父进程应及时调用wait函数来为子进程收尸,做一些收尾工作。但如果父进程没有及时调用wait函数,则子进程的进程状态变成ZOMBIE,即僵尸进程僵尸进程会一起占用内存且无法通过使用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值