获取子进程终止状态:wait和waitpid
当父进程调用wait和waitpid函数来获取子进程终止状态时,一般会有以下3种情况:
1、如果其所有子进程都还在运行,则阻塞;
2、如果一个子进程已终止,正等待父进程获取其终止状态,则取得该子进程的终止状态立即返回;
3、如果没有任何子进程,则立即终止返回。
如果父进程由于接收到SIGCHLD信号(当一个进程正常或异常终止时),内核就向其父进程发送SIGCHLD信号)而调用wait,wait会立即返回。
函数原型如下:
两个函数的区别如下:
1、在一个子进程终止前,wait使其调用者阻塞,而waitpid有一选项(int options),可使调用者不阻塞;
2、waitpid并不等待在其调用之后的第一个终止子进程,它有若干个选项,可以控制它所等待的进程。
对于waitpid函数中pid参数的作用解释如下:
waitpid函数返回终止子进程的ID,并将该子进程的终止状态存放在由statloc指向的存储单元中。
3、对于wait,其唯一的出错是调用进程没有子进程;
但是对于waitpid,如果指定进程或进程组不存在,或者参数pid指定的进程不是调用进程的子进程,都可能出错。
获取子进程终止状态:wait和waitpid相关推荐
- 使用wait函数获取子进程终止状态
1 wait/waitpid介绍 当一个进程正常或异常终止时,内核会向其父进程发送SIGCHLD信号.因为子进程终止是异步的,所以信号发送也是异步的.父进程可以选择忽略该信号,或者提供信号处理函数进行 ...
- UNIX环境编程学习笔记(21)——进程管理之获取进程终止状态的 wait 和 waitpid 函数...
lienhua34 2014-10-12 当一个进程正常或者异常终止时,内核就向其父进程发送 SIGCHLD信号.父进程可以选择忽略该信号,或者提供一个该信号发生时即被调用的函数(信号处理程序).对于 ...
- wait获取子进程退出状态 WIFEXITED和WIFSIGNALED用法
可以使用wait函数传出参数status来保存进程的退出状态. 常用宏函数分为日如下几组: 1. WIFEXITED(status) 若此值为非0 表明进程正常结束. 若上宏为真,此时可通过WEXIT ...
- Linux进程控制:wait获取子进程退出状态 WIFEXITED和WIFSIGNALED用法
可以使用wait函数传出参数status来保存进程的退出状态. 常用宏函数分为日如下几组: 1. WIFEXITED(status) 若此值为非0 表明进程正常结束. 若上宏为真,此时可通过WEXIT ...
- Linux进程3:父进程等待(wait,waitpid)子进程退出并收集子进程退出状态,僵尸进程
父进程等待(wait,waitpid)子进程退出并收集子进程退出状态 1.父进程为什么要等待子进程退出? 创建子进程目的:------干活 我们要知道干活结束没. 子进程退出状态不被收集,变成僵尸进程 ...
- linux操作系统之子进程回收函数wait和waitpid函数小结
一个进程在终止时会关闭所有的文件描述符,释放用户空间分配的内存,但是它的PCB还保留着,内核在其中还保留着进程的一些信息:如果正常终止,则保留着退出状态:如果异常终止则保存着导致进程种植的信号. 在父 ...
- 【Linux 内核】进程管理 ( Linux 中进程的 CPU 资源调度 | 进程生命周期 | 创建状态 | 就绪状态 | 执行状态 | 阻塞状态 | 终止状态 | 进程生命周期之间的转换 )
文章目录 一.Linux 中进程的 CPU 资源调度 二.进程生命周期 三.进程生命周期之间的转换 一.Linux 中进程的 CPU 资源调度 Linux 操作系统 是 多任务系统 , 可以 同时运行 ...
- Android编程获取网络连接状态及调用网络配置界面
获取网络连接状态 随着3G和Wifi的推广,越来越多的Android应用程序需要调用网络资源,检测网络连接状态也就成为网络应用程序所必备的功能. Android平台提供了ConnectivityMan ...
- Android编程获取网络连接状态(3G/Wifi)及调用网络配置界面
http://www.mobiletuts.me 获取网络连接状态 随着3G和Wifi的推广,越来越多的Android应用程序需要调用网络资源,检测网络连接状态也就成为网络应用程序所必备的功能. An ...
最新文章
- Iterative error correction of long sequencing reads maximizes accuracy and improves contig assembly
- 让asp.net默认的上传组件支持进度条反映(转)
- 【深度学习】图片分类CNN模板
- swoole redis mysql_教你使用swoole监听redis数据
- k1658停运_最新通知!福州这些列车停运!
- Java番外篇2——jdk8新特性
- java作业 大蛇丸的召唤术 万蛇罗之阵 类与对象的演练
- Upload-Labs(11-15)
- IOS开发一些资源收集
- 8-7/8 java/redis 客服端
- linux SU不用密码,linux设置su和sudo为不需要密码
- 编程常见错误——循环中进行有符号数和无符号数的比较
- [渝粤教育] 中国地质大学 中外美术史 复习题 (2)
- UDS - 诊断协议和协议栈介绍
- 深度学习框架_Caffe_Caffe框架入门简介
- 硬件设备计算存储及数据交互杂谈
- Java中IDEA报错 “cannot access xxx“的解决办法
- 虚拟打印机直播软件 无人直播互动打印系统 含搭建教程
- GRU和LSTM的单元结构
- cisco路由器启动过程
热门文章
- 网络层的拥塞控制与服务质量
- 计算机3d开机号162期,彩吧福彩3D第162期试机号后分析总汇
- php保存word没背景图,为什么word文档明明保存了却不见了
- 卖家盒子提示服务器正在维护,户户通提示位置信息改变的解决办法
- 人生经典定律[收藏]
- 强化学习Reinforcement Learning概念理解篇(一)
- matlab高斯正反算程序6,基于matlab的高斯投影正反算与相邻带坐标换算程序设计...
- 给hexo主题添加背景及更改字体颜色(next的Mist主题)
- 3.acwing3373. 进制转换
- 文献阅读—GAIN:Missing Data Imputation using Generative Adversarial Nets