C语言中如何实现进程等待的复杂而详尽的机制?
- 内容介绍
- 文章标签
- 相关推荐
本文共计2007个文字,预计阅读时间需要9分钟。
目录+进程等待的必要+进程等待的方法+wait函数+waitpid函数+获取子进程退出信息+进程等待的必要+当一个进程结束时,它的资源,如PCB、数据等不会立即被清理掉。它会保持已结束状态。
目录
- 进程等待的必要
- 进程等待的方法
- wait函数
- waitpid函数
- 获取子进程退出信息
进程等待的必要
当一个进程终止的时候,它的资源,比如说PCB,数据等不会被立马清理掉。它会保持在已经终止的状态,这种状态称为“僵尸状态”,直到被父进程确认。父进程wait,即父进程向内核确认子进程已经终止,可以为子进程“收尸”了,内核会把子进程的退出信息传给父进程,然后清理掉子进程的资源,这个时候子进程才算真正地终止了!
总结:
- 父进程等待,可以获取子进程的退出信息,知道子进程的执行结果。
- 父进程等待,可以释放子进程的资源,让子进程真正地退出,避免一直消耗系统的存储资源,造成“内存泄露”等危害。
- 父进程等待,可以保证时序的问题,子进程先于父进程退出,避免让子进程变为孤儿进程。
进程等待的方法
wait函数
一个进程可以通过调用wait函数等待子进程。wait函数是系统调用函数。
本文共计2007个文字,预计阅读时间需要9分钟。
目录+进程等待的必要+进程等待的方法+wait函数+waitpid函数+获取子进程退出信息+进程等待的必要+当一个进程结束时,它的资源,如PCB、数据等不会立即被清理掉。它会保持已结束状态。
目录
- 进程等待的必要
- 进程等待的方法
- wait函数
- waitpid函数
- 获取子进程退出信息
进程等待的必要
当一个进程终止的时候,它的资源,比如说PCB,数据等不会被立马清理掉。它会保持在已经终止的状态,这种状态称为“僵尸状态”,直到被父进程确认。父进程wait,即父进程向内核确认子进程已经终止,可以为子进程“收尸”了,内核会把子进程的退出信息传给父进程,然后清理掉子进程的资源,这个时候子进程才算真正地终止了!
总结:
- 父进程等待,可以获取子进程的退出信息,知道子进程的执行结果。
- 父进程等待,可以释放子进程的资源,让子进程真正地退出,避免一直消耗系统的存储资源,造成“内存泄露”等危害。
- 父进程等待,可以保证时序的问题,子进程先于父进程退出,避免让子进程变为孤儿进程。
进程等待的方法
wait函数
一个进程可以通过调用wait函数等待子进程。wait函数是系统调用函数。

