进程管理:等待、创建与用户权限
1. 子进程状态观察与等待特定进程
在进程管理中,观察子进程的行为十分重要。有时候,一个进程会有多个子进程,而我们可能只希望等待特定的子进程。如果使用多次 wait() 调用并记录每次的返回值,这种方法会很繁琐。而且,若后续要检查不同已终止进程的状态,父进程还得保存所有 wait() 的输出。
1.1 waitpid() 系统调用
若知道要等待的进程的 pid ,可以使用 waitpid() 系统调用:
#include <sys/types.h>
#include <sys/wait.h>
pid_t waitpid (pid_t pid, int *status, int options);
waitpid() 是 wait() 的增强版本,其额外的参数允许进行更精细的控制。
- pid 参数 :指定要等待的进程,其取值分为以下四种情况:
- < -1 :等待进程组 ID 等于该值绝对值的任何子进程。例如,传入 -500 会等待进程组 500 中的任何进程。
- -1 :等待任何子进程,与 wait() 行为相同。
-
超级会员免费看
订阅专栏 解锁全文

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



