|
≫ |
|
|
|
HP OpenVMS HP C ランタイム・ライブラリ・リファレンス・マニュアル (下巻)
ジョブ制御のプロセス・グループ ID を設定します。
形式
#include <unistd.h>
int setpgid (pid_t pid, pid_t pgid);
引数
pidプロセス・グループ ID を設定するプロセスのプロセス ID。
pgidプロセス・グループ ID として設定する値。
説明
setpgid関数は,既存のプロセス・グループに参加したり,呼び出し元プロセスのセッション内に新しいプロセス・グループを作成するために使用します。セッション・リーダのプロセス・グループ ID は変更されません。
成功して終了すると,プロセス ID が
pid であるプロセスのプロセス・グループ ID として, pgid が設定されます。特別なケースとして,pid が 0 の場合は,呼び出し元プロセスのプロセス ID が使用されます。また,pgid が 0 の場合は,指定したプロセスのプロセス・グループ ID が使用されます。
戻り値
0
|
成功を示します。
|
-1
|
エラーを示します。この関数は,以下のいずれかの値を
errno
に設定します。
- EACCES --
pid 引数の値が,呼び出し元プロセスの子プロセスのプロセス ID と一致し,その子プロセスが
exec
ファミリ関数のいずれかを正常に実行していました。
- EINVAL --
pgid 引数の値が 0 より小さいか,実装でサポートされていない値でした。
- EPERM --
pid 引数で指定されたプロセスは,セッション・リーダです。
pid 引数の値が,呼び出し元プロセスの子プロセスのプロセス ID と一致し,その子プロセスが,呼び出し元プロセスと同じセッションに属していません。
pgid 引数の値は有効ですが,
pid 引数で指定されたプロセスのプロセス ID と一致していず,呼び出し元プロセスと同じセッション内に,
pgid 引数の値と一致するプロセス・グループ ID を持つプロセスがありません。
- ESRCH --
pid 引数の値が,呼び出し元プロセスのプロセス ID,呼び出し元プロセスの子プロセスのプロセス ID のどちらとも一致しません。
|
|