Linux 进程 之 等待

Linux 中,进程控制有四种状态:创建退出等待替换

本篇博客讲述 等待 状态下的一些事:

等待:父进程等待子进程退出,获取退出子进程返回值,释放退出子进程资源,避免出现僵尸进程;
进程等待:等待子进程退出,获取子进程返回值,释放子进程资源,避免出现僵尸进程!!!!!

以下与 等待 状态相关的函数,使用时需包含 头文件 #include<sys/wait.h>
1)wait()

pid_t wait(int *status);

等待任意一个子进程退出,通过 status 获取退出返回值,释放资源
返回值:成功则返回子进程的pid;错误返回-1
2)waitpid()

pid_t waitpid(pid_t pid,int *status,int options);

可以等待任意子进程退出,也可以等待指定的子进程退出
可以阻塞等待子进程退出,也可以非阻塞等待子进程退出

参数说明
pid : 若为 -1,则等待任意子进程;若大于0,则等待指定子进程
options :0 即默认阻塞等待; WNOHANG 即非阻塞等待

进程返回值status
高8位为进程返回值,
低8位中的第8位(由低到高的第8位)为 core dump,当异常退出时,将所有运行信息全部保存在core文件中,便于异常后的调试;其低7位 – 异常退出值,若为0,正常退出,反之为异常退出
注意:core文件内存很大,且有安全隐患!!!!!!所以core dumped默认关闭

返回值:成功则返回值大于0,会返回子进程的pid,没有子进程退出则返回0,只有在非阻塞条件下存在;错误返回 -1。

waitpid(-1,NULL,0) 等价于 wait(NULL)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值