进程状态监控与信号处理:wait、waitpid 和 waitid 系统调用解析
1. 僵尸进程概述
当一个进程通过退出变体或信号终止时,它会停止执行,但在其退出状态报告给父进程之前不会完全消失,除非系统判定父进程对该状态不感兴趣。未报告退出状态的终止进程被称为僵尸进程。
2. wait、waitpid 和 waitid 系统调用
这些系统调用用于等待子进程改变状态(停止、继续或终止),然后获取该进程的状态。下面先介绍 waitpid,再介绍其他两个变体。
2.1 waitpid 系统调用
#include <sys/wait.h>
pid_t waitpid(
pid_t pid,
/* process or process-group ID */
int *statusp,
/* pointer to status or NULL */
int options
/* options (see below) */
);
/* Returns process ID or 0 on success or -1 on error (sets errno) */
- pid 参数的用途 :
-
>0:等待具有该进程 ID 的子进程。 -
-1:等待任何子进程。 -
0:
-
超级会员免费看
订阅专栏 解锁全文
4

被折叠的 条评论
为什么被折叠?



