don*_*kon 3 c linux pid waitpid
脚步:
在不同的程序组中派生并启动进程
使用 SIGTSTP
停止进程 使用 SIGCONT 重新启动
进程 进程结束
问题:SIGCHLD 处理程序有:
waitpid(-1, &status, WNOHANG | WUNTRACED);
Run Code Online (Sandbox Code Playgroud)
返回 pid=0 和 WIFEXITED=1 后,进程退出,但我无法获取 pid?我需要 pid。
从手册页来看:“如果指定了 WNOHANG 并且 pid 指定的一个或多个子进程存在,但尚未更改状态,则返回 0”
但状态似乎已更改为退出。
如果返回的pid是0,那么status就没有意义了。想一想。返回 0 意味着您有一个或多个尚未更改状态的子级。尚未改变状态的孩子会是什么状态?如果有多个孩子,状态代码引用哪个孩子?
这类似于在成功调用时检查 errno。先前调用中的任何内容都可以包含在 errno 中,但它与最近成功的调用无关,因为 errno 通常不会在成功时设置。
| 归档时间: |
|
| 查看次数: |
3716 次 |
| 最近记录: |