在C中,为什么子进程没有自动收获



为了解释,我并不是在问如何收获一个过程。

在C中,父进程必须显式获取创建的子进程,即使该子进程通过执行exit()函数调用而退出。

我理解,在收获孩子的同时,可能有必要获得孩子的退出身份事实上,这是可以从子进程获得的唯一信息。那么,为什么操作系统不仅存储退出状态(一个整数),而且还存储与子级相关的所有内存,直到收割?

你的问题的前提是错误的。操作系统确实只存储退出状态(和资源使用情况报告),但最重要的是,它还保留pid,直到您等待它。最后一部分很重要,因为如果在等待原始进程之前将pid重新分配给新进程,则不可能将其用作请求退出状态的标识符。

最新更新