wait操作接口
1.等待回收的两个函数wait()和waitpid()函数
1.1 wait(int *status)的用法:阻塞函数,等待任意一个子进程的返回。
*wait(NULL):对子进程的结束状态不关心;
*wait(status) 可以通过statu查看子进程的结束状态。
int statu;
wait(&statu);
if(WIFEXITED(statu)){ //正常退出
printf("正常结束code:%d\n",WEXITSTATUS(statu));//code状态码用于表示成功与否
}else if(WIFSIGNALED(statu)){//接收信号退出
printf("异常结束signo:%d\n",WTERMSIG(statu));
}
2.waitpid()的用法
pid_t waitpid(pid_t pid, int *status,int options);
参数:.pid == -1 等待任一子进程。
.pid > 0 等待进程号为pid的进程返回
.pid == 0 等待任何一个组id和父进程组id相同的进程的返回
.pid < -1 等待任何一个进程的组id号和参数pid绝对值相同的进程
options:(可以多个条件一起用 |)
WNOHANG return immediately if no child has exited.
WUNTRACED also return if a child has stopped (but not traced via
ptrace(2)). Status for traced children which have stopped
is provided even if this option is not specified.
WCONTINUED also return if a stopped child has been resumed by deliveryof SIGCONT.
对status状态的操作:
.WIFEXITED(status)若子进程为正常终止,则为真。
对于这种情况可执行WEXITSTATUS(status)求得终止码。
.WIFSIGNALED(status) 若为异常终止子进程,则为真(接到一个不捕捉的信号)。
对于这种情况,可执行WTERMSIG(status)取使子进程终止的信号编号。
另外某些实现定义宏:WCOREDUMP(status)若已产生终止进程的core文件,则它返回真
.WIFSTOPPED(status) 若为当前暂停子进程的返回的状态,则为真。
对于这种情况,可执行WSTOPSIG(status)取使子进程暂停的信号编号
最新文章
- Selenium-java-获取当前时间
- EF Code First Migrations数据库迁移
- 《Qt Quick 4小时入门》学习笔记3
- Cocos2d-x 3.2 学习笔记(二)创建自定义项目
- ext4 文件系统的一些记录
- 【转】代码编辑器(一)-TSynCompletionProposal用法
- Cocos手游录制插件:cocos-plugin
- TFS2012常见问题及解答
- eclipse中DDMS的LOGcat只有一列level
- SQL Server用户自定义类型与统计信息
- WebRequestHelper
- layui打印html页面转成pdf
- springMVC中上传图片
- jquery append()方法与html()方法使用方法差别
- 如何将 iOS 工程打包速度提升十倍以上
- JS页面跳转并及时刷新
- 1<;=portNo<;=4竟然在keil4.71里面不报错
- WikiMedia system architecture
- php特级课---3、常用的网站加速技术有哪些
- Web前端培训学习心得
热门文章
- Cracking Digital VLSI Verification Interview 第二章
- SEO教程:快速增加360搜索引擎收录,360自动推送批量推送版
- CSS3新特性—animate动画
- UML-设计对象时涉及的制品有哪些?
- 第二季 第四集 part3
- CodeForces-1076B Divisor Subtraction 找规律
- POJ 1860:Currency Exchange
- Paper Review: Epigenetic Landscape, Cell Differentiation 02
- 将元素平分成差值最小的两个集合(DP)
- spring获取当前动态代理对象