大家好,我是苏貝,本篇博客带大家了解Linux进程(9)进程控制2,如果你觉得我写的还不错的话,可以给我一个赞👍吗,感谢❤️
目录
结论:任何子进程,在退出的情况下,一般必须要被父进程进行等待。进程在退出时的状态变为Z(僵尸状态),如果父进程不管不顾,那么子进程的task_struct一直存在而且所占的空间较大,造成内存泄露的问题
一. 为什么要进程等待
- 父进程通过等待,解决子进程退出的僵尸问题,回收系统资源(一定要考虑的)
- 获取子进程的退出信息,知道子进程是因为什么原因退出的(可选的功能)
二. 如何进行进程等待
1.wait函数—系统调用
先来查看一下wait函数,从头文件就可以看出,wait函数是系统调用函数。作用:等待任意一个子进程退出
函数的参数暂时不用管,(我们下面说waitpid中会说到)可以直接传NULL
函数的返回值是父进程等待子进程,等待成功时,子进程的pid
修改.c文件
上面代码的意思是先用fork函数生成一个子进程,子进程会执行ChildRun函数,执行完成后,进程终止。此时子