进程学习6--waitpid与wait差别
来源:互联网 发布:星星网络星盘查询 编辑:程序博客网 时间:2024/05/21 17:26
概述
(1)基本功能一样,都是用来回收子进程
(2)waitpid可以回收指定PID的子进程
(3)waitpid可以阻塞式或非阻塞式两种工作模式,wait只能是阻塞式工作模式
正文
函数
函数原型waitpid
pid_t waitpid(pid_t pid, int *status, int options);
参数
参数pid表示要回收的PID号(-1表示不指定pid号)
参数status为子进程返回值
参数options表示可选项(0:默认阻塞式)
WNOHANG 非阻塞模式
返回值
回收的pid号,
-1表示pid号是错的
0表示在非阻塞式下没有回收
测试代码
int main(void){ pid_t Mypid =-1; Mypid = fork(); if(Mypid>0)/*父进程*/ { pid_t Mypid2 = -1; int status = -1; Mypid2 = waitpid(Mypid,&status,0);/*0为默认阻塞*/ printf("son is recycled Mypid2 = %d\r\n",Mypid2); printf("exit true? %d\n", WIFEXITED(status)); printf("exit false? %d\n", WIFSIGNALED(status)); printf("exit val %d.\n", WEXITSTATUS(status)); } else if(Mypid == 0)/*子进程*/ { printf("son progress.Mypid = %d\r\n",getpid()); return 22; } return 0;}/************运行结果**************** son progress.Mypid = 10652 son is recycled Mypid2 = 10652 exit true? 1 exit false? 0 exit val 22.************************************/
参考
朱友鹏Linux学习教程
阅读全文
0 0
- 进程学习6--waitpid与wait差别
- 进程wait()与waitpid()
- linux中wait与waitpid的差别
- linux中wait与waitpid的差别
- linux中wait与waitpid的差别
- linux中wait与waitpid的差别
- 进程等待与wait&waitpid
- wait 和 waitpid 差别
- 僵尸进程 wait() waitpid()
- 僵尸进程 wait() waitpid()
- 僵尸进程 wait() waitpid()
- APUE:进程:wait、waitpid
- 僵尸进程 wait waitpid
- 进程等待wait,waitpid
- linux C进程 进程等待wait与waitpid函数
- wait()与waitpid()解析
- wait与waitpid
- waitpid()与wait()
- 【mysql 连接错误解决】mysql 登录错误解决
- [BZOJ 2190][SDOI2008]仪仗队:欧拉函数
- 智深与智清:一个馒头所诱发的华山论剑
- JAVA集合中常见的两种去重的两种方式
- [es-sql] 不支持distinct去重,可以用group by来实现
- 进程学习6--waitpid与wait差别
- caffe实战之classify.py解析
- shell文件操作(二)
- Windwos下安装CYGwin及任务计划使用方法
- 《编写可维护的JavaScript》读书笔记(2)---注释
- 伺服电机抖动原因分析
- POJ
- Dubbo&ZK分布式服务化改造(四)——Dubbo多注册中心 & 服务迁移
- 注解+代理 模仿 Retrofit 传参