Linux进程等待

进程等待:
父进程等待子进程退出,获取子进程的退出返回值,释放退出的子进程资源,避免子进程成为僵尸进程。
僵尸进程:子进程先于父进程退出,但是父进程没有关注子进程的退出状态,子进程为了保存自己的退出状态,因此资源无法完全释放。
如何等待:
*int wait(int status); 是一个阻塞接口,处理退出的子进程,若没有子进程退出,则会一直等待,直到有子进程退出才会调用返回;
阻塞:为了完成一个功能,发起一个调用,若不具备完成功能的条件,则调用一直等待;
非阻塞:为了完成一个功能,发起一个调用,若不具备完成功能的条件,则调用立即报错返回。
返回值:成功则返回处理的退出子进程的pid;失败则返回-1(比如没有子进程)
*int waitpid(int pid,int staus;int option); 也是处理退出的子进程;但是与wait不同之处:
1.wait等待的是任意一个子进程的退出;waitpid可以等待指定的子进程,也可以等待任意一个子进程,通过第一个参数确定(第一个参数pid==-1则表示等待任意)
2.wait是一个阻塞接口(wait如果没有子进程退出,则会一直等待);waitpid可以默认阻塞,也可以设置为非阻塞,通过第三个参数确定(第三个参数option == 0表示默认阻塞;option==WNOHANG则表示非阻塞)
返回值:成功返回退出的子进程的pid大于0;若没有子进程退出返回0;若出错返回-1;

一个进程退出场景有两种:正常退出与异常退出
一个进程只有在正常退出的时候,返回值才是有意义的;若进程是异常退出,则返回值没有意义;

core dump–核心转储
当一个进程异常退出时,将退出前的程序运行信息保存下来(默认是关闭的)
默认是关闭的:程序中有很多敏感数据,有隐私泄露风险,保存运行数据需要占用磁盘空间。

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值