Linux进程控制3-子进程回收

Linux进程控制-子进程回收

父进程有义务回收子进程

  • 孤儿进程父进程先于子进程死亡.(此时init进程就是该子进程的父进程);
  • 僵尸进程:子进程执行完毕后,父进程没有回收.(子进程残留资源(pcb)存在内核里).
    注意:僵尸进程不能被kill命令清除.(因为僵尸进程已经运行完毕,此时只有杀死它的父进程,让init进程领养此子进程)(Z:僵尸进程;S:后台;R:运行)
    使用wait()和waitpid()可以对进程进行回收.
  • wait()和waitpid()
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include<stdio.h>
#include <unistd.h>
#include<stdlib.h>
#include <sys/wait.h>

	/*****************************************************************************************************************************************
	*函数:wait() 
	*头文件:#include <sys/types.h>  #include <sys/wait.h>
	*格式:pid_t wait(int *status); //pid_t:返回值;int *status:没有加const,是一个传出参数(传出的进程死亡状态,借助宏函数判断).见下面图片1,重点掌握1和2.
	*作用:1.阻塞回收子进程(父进程wait()函数后面的动作不执行,等待回收之后再运行);2.回收子进程资源;3.获取子进程结束状态(死亡原因)
	*返回值:成功-返回回收的子进程ID;失败--1(没有子进程)
	********************************************************************************************************************************************
	*函数:waitpid() 
	*头文件:#include <sys/types.h>  #include <sys/wait.h>
	*格式:pid_t waitpid(pid_t pid, int *status, int options);//pid_t 返回值(回收的子进程ID值或则-1);第一个参数:pid >0时,表示指定回收某个子进程,=-1时,表示回收任意子进程(相当与wait())
	*,(了解 <-1时,表示回收当前进程的同组的所有子进程,=0,表示回收本组任意进程);int *status():是一个传出参数(传出的进程死亡状态,借助宏函数判断);int options:为WNOHANG时,表示轮询,为0时,表示阻塞状态.
	*作用:作用同wa
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值