首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >等待pid返回pid=0和WIFEXITED=1如何得到pid?

等待pid返回pid=0和WIFEXITED=1如何得到pid?
EN

Stack Overflow用户
提问于 2014-01-31 15:59:53
回答 2查看 3.3K关注 0票数 3

步骤:

在不同的程序组中分叉和启动进程

用SIGTSTP停止过程

用SIGCONT重新启动进程

过程结束

问题: SIGCHLD处理程序有:

代码语言:javascript
复制
waitpid(-1, &status, WNOHANG | WUNTRACED);

当返回pid=0和WIFEXITED=1时,进程就退出了,但是我不能得到pid?我需要pid。

在手册页中:“如果指定了WNOHANG,并且存在pid指定的一个或多个子(Ren),但尚未更改状态,则返回0”。

但这一地位似乎已经改变为退出。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-01-31 16:35:11

如果返回的pid为0,则状态没有意义。想想看。返回值为0意味着您有一个或多个尚未更改状态的子级。一个尚未改变状态的孩子的状态是什么?如果有多个子级,状态代码引用的是哪个子级?

这类似于在成功调用时检查errno。以前调用的任何内容都可以在errno中,但它与最近的成功调用没有任何关系,因为errno通常不是设置为成功的。

票数 4
EN

Stack Overflow用户

发布于 2014-01-31 16:01:53

waitpid的返回值是等待的子节点的PID。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21484410

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档