SETPGID(2)

名前
setpgid, getpgid, setpgrp, getpgrp - プロセス・グループ(process group)の設定/取得を行なう

書式
#include <unistd.h>

int setpgid(pid_t pid, pid_t pgid);
pid_t getpgid(pid_t pid);
int setpgrp(void);
pid_t getpgrp(void);

説明
setpgid は pid で指定したプロセスのプロセス・グループID に pgid を設定する。 もし pid がゼロならば、呼び出したプロセスのプロセスID が pid として使用される。もし pgid がゼロならば、 pid で指定されたプロセスのプロセスID が pgid として使用される。 getpgid は pid で指定されたプロセスのプロセス・グループID を返す。 もし pid がゼロならば、呼び出したプロセスのプロセスID が pid として使用される。 Linux DLL 4.4.1 ライブラリでは setpgrp は単に setpgid(0,0) を呼び出す。 getpgrp は getpgid(0) に等しい。 プロセス・グループはシグナル(signal)を配送する時や、端末(terminal)によって 入力の要求を調停(arbitrate)する時に使用される: 端末と同じプロセス・グループID を持つプロセスはフォアグランド として読み込みを行なうことができ、その他のプロセスが端末から読み込みを 行なおうとした場合、シグナルによって中断(block)させられる。 これらのコールは csh(1) のようなプログラムによって、ジョブ・コントロール(job control)の 実装の際にプロセス・グループを作成するために使用される。 termios(4) に記述されている TIOCGPGRP と TIOCSPGRP コールは制御端末のプロセス・グループを取得/設定するのに使用する。

返り値
setpgid と setpgrp は成功した場合、ゼロを返す。エラーの場合は -1 を返し、 errno が適切に設定される。 getpgid は成功した場合プロセス・グループを返す。 エラーの場合は -1 を返し、 errno が適切に設定される。 getpgrp は常に現在のプロセスのプロセス・グループを返す。

エラー

EINVAL
    pgid が 0 より小さい。

EPERM
    各種の許可違反。

ESRCH
    pid がどのプロセスにも一致しない。

準拠
SVr4, POSIX, 4.4BSD. setpgid 関数と getpgrp 関数は POSIX.1 に準拠している。 setpgrp 関数は BSD 4.2 に由来する。 getpgid 関数は SVr4 に準拠している。

関連項目
getuid(2), setsid(2), tcsetpgrp(3), termios(4)