Unix 进程管理与调度全解析
1. 进程组系统调用
在 Unix 系统中,进程组管理是重要的一部分。 setpgid() 函数用于设置由 pid 标识的进程的进程组 ID 为 pgid ,其函数原型如下:
#define _XOPEN_SOURCE 500
#include <unistd.h>
int setpgid (pid_t pid, pid_t pgid);
- 当
pid参数为 0 时,使用当前进程。 - 若
pgid为 0,则使用由pid标识的进程的进程 ID 作为进程组 ID。
调用成功时, setpgid() 返回 0,但成功需要满足以下条件:
- 由 pid 标识的进程必须是调用进程,或者是调用进程的子进程,且该子进程未执行 exec 调用,并且与调用进程处于同一会话中。
- 由 pid 标识的进程不能是会话领导者。
- 如果 pgid 已经存在,它必须与调用进程处于同一会话中。
- pgid 必须是非负的。
调用失败时,该函数返回 -1,并将 errno 设
超级会员免费看
订阅专栏 解锁全文

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



