Linux并发(子进程退出状态的处理)

进程的退出状态不等于其退出值,退出值只是退出状态的其中一个量。

 

拓展:

子进程在退出的时候,其状态信息是怎么传递给父进程的呢?答案是:可以使用exit()/_exit()来退出并传递这些信息,这几个函数的接口如下:

以上两个函数中的参数:status就是所谓的退出值,这个退出值是整个子进程的退出状态的一部分信息。那么父进程是怎么获取子进程的整个退出状态的呢?答案是:可以使用wait()/waitpid()来获得子进程正常退出的退出状态,这几个函数的接口如下:

这里必须注意,此处的stat_loc所指向的内存就包含了所有的退出状态,上面所提到的status被包含在该内存的低8位。我们可以用如下宏来通过stat_loc获取status:

    WEXITSTATUS(*stat_loc)

这些宏定义可以通过查阅wait()/waitpid()的man手册得知。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

干燥剂007860

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值