  | 
≫  | 
 | 
  
 | 
    
      | 
    
    
    
     
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 のどちらとも一致しません。
  
  | 
 
 
  
 
 
      |