SETPGID(2) |
FreeBSD System Calls Manual |
SETPGID(2) |
名称
setpgid,
setpgrp —
プロセスグループを設定する
ライブラリ
Standard C Library (libc, -lc)
書式
#include < unistd.h>
int
setpgid( pid_t pid, pid_t pgrp);
int
setpgrp( pid_t pid, pid_t pgrp);
解説
setpgid() システムコールは、指定されたプロセス
pid のプロセスグループを指定された
pgrp に設定します。
pid が 0 であるなら、呼び出しは、現在のプロセスに適用されます。
pgrp が 0 であるなら、
pid によって指定されたプロセスのプロセス ID が代わりに使用されます。
影響されるプロセスが呼び出しているプロセスでないなら、それは、呼び出しているプロセスの子プロセスでなければならず、 exec(3) 操作を実行してはならなくて、両方のプロセスは、同じセッションでなければなりません。要求されたプロセスグループ ID は、呼び出し側のセッションに既に存在していなければならないか、または、ターゲットプロセス ID と等しくなければなりません。
戻り値
The
setpgid() function returns the value 0 if successful; otherwise the value -1 is returned and the global variable
errno is set to indicate the error.
互換性
setpgrp() システムコールは、
setpgid() と同一で、
BSD の歴史的なバージョンとの呼び出している慣習の互換性のために保持されます。
エラー
setpgid() システムコールは、次の場合に失敗し、プロセスグループは、変更されません:
-
[
EINVAL]
-
要求されたプロセスグループ ID が、正当ではありません。
-
[
ESRCH]
-
要求されたプロセスが、存在しません。
-
[
ESRCH]
-
ターゲットプロセスが、呼び出しているプロセスまたは呼び出しているプロセスの子プロセスではありません。
-
[
EACCES]
-
要求されたプロセスが、呼び出しプロセスの子プロセスですが、
exec(3) 操作を実行しました。
-
[
EPERM]
-
ターゲットプロセスが、セッションリーダです。
-
[
EPERM]
-
要求されたプロセスグループ ID が、呼び出し側のセッションではなく、ターゲットプロセスのプロセス ID と等しくありません。
規格
setpgid() システムコールは、 IEEE Std 1003.1-1990 (“POSIX.1”) に適合するはずです。