目录:
1.status获取子进程退出的退出码和信号
2.不进行位操作方式获取子进程的退出码和信号
3.waitpid 第三个参数options
-------------------------------------------------------------------------------------------------------------------------------
1.status获取子进程退出的退出码和信号
代表着代码跑完了,结果不正确
代表着,代码跑完了,结果也正确了
--------------------------------------------------------------------------------------------
那么我们的代码异常终止是什么情况呢???
我们换一种情况看看代码异常终止还有哪些情况(除了我们给进程发送信号)
以上就是子进程退出时,父进程获取子进程的退出结果
-------------------------------------------------------------------------------------------------------------------------------
2.不进行位操作方式获取子进程的退出码和信号
使用宏 WIFEXITED(status)
WEXITSTATUS(status)
3.waitpid 第三个参数options
阻塞等待
我们如何理解阻塞等待和非阻塞等待呢????
这里补充一下,阻塞等待是不挂电话的,我让张三别给我挂电话,当你要下来了了再挂电话
非阻塞等待呢就意味着,调一个waitpid()接口,调完之后立马返回,CPU可以正常去调度父进程,父进程不断的去执行waitpid()的过程就是非阻塞。。。
阻塞的本质: 其实是进程的PCB被放入了等待队列,并将进程的状态改为S状态
返回的本质: 进程的PCB从等待队列拿到R队列,从而被CPU调度
-------------------------------------------------------------------------------------------------------------------
那么我们该如何进行非阻塞等待呢??????