SETPGID(2)

名称
setpgid, setpgrp - プロセスグループを設定する

ライブラリ
libc

書式
<unistd.h> int setpgid(pid_t pid, pid_t pgrp) int setpgrp(pid_t pid, pid_t pgrp)

解説
setpgid() システムコールは、指定されたプロセス pid のプロセスグループを指定された pgrp に設定します。 pid が 0 の場合、呼び出しは現在のプロセスに適用されます。

影響されるプロセスが実行したプロセスでない場合には、 それは実行したプロセスの子プロセスでなければならず、既に exec(3) 操作を実行していてはならず、両方のプロセスが同じセッション中に なければなりません。 要求されたプロセスグループ ID は呼び出し側のセッション中に既に存在 していなければならないか、または目的のプロセス ID と同一でなければなりません。

戻り値

エラー
setpgid() システムコールは、次の場合に処理を失敗し、プロセスグループは変更されません:

[EINVAL]
    要求されたプロセスグループ ID は正当ではありません。

[ESRCH]
    要求されたプロセスが存在しません。

[ESRCH]
    目的のプロセスが、呼び出したプロセスでも、呼び出したプロセスの 子プロセスでもありません。

[EACCES]
    要求されたプロセスが呼び出したプロセスの子プロセスですが、 exec(3) 操作を既に行っています。

[EPERM]
    目的のプロセスがセッションリーダです。

[EPERM]
    要求されたプロセスグループ ID が呼び出し側のセッションの中に無く、 目的のプロセスのプロセス ID とも等しくありません。

関連項目
getpgrp(2)

規格
setpgid() システムコールは p1003.1-90 に適合しています。

互換性
setpgrp() システムコールは、 setpgid() と同一であり、 BSD の旧バージョンとの呼び出し規約互換のために保持されています。