GETPGRP(2) | FreeBSD System Calls Manual | GETPGRP(2) |
名称
getpgrp — プロセスグループの取得ライブラリ
Standard C Library (libc, -lc)解説
現在のプロセスのプロセスグループは getpgrp() によって返されます。 pid によって識別されるプロセスのプロセスグループは getpgid() によって返されます。 pid が 0 の場合、 getpgid() は現在のプロセスのプロセスグループを返します。プロセスグループはシグナルの配信用に使用され、また端末によって入力の要求を調整するのにも使用されます。端末と同じプロセスグループを持つ (1 つ以上の) プロセスはフォアグラウンドであり読み込みできます。一方で、その他のプロセスが読み込もうとした場合は、シグナルによってブロックさせられます。
このように、このシステムコールは csh(1) のようにジョブ制御のためにプロセスグループの作成を行うプログラムによって使用されます。 tcgetpgrp() 呼び出しと tcsetpgrp() 呼び出しは制御端末のプロセスグループを取得/設定するのに使用されます。
戻り値
getpgrp() システムコールは、常に成功します。成功裏に完了すると、 getpgid() システムコールは指定したプロセスのプロセスグループを返します。失敗すると、値-1 を errno に設定してエラーを示します。互換性
このバージョンの getpgrp() システムコールは、 pid_t pid 引数を取らないという点で過去の Berkeley バージョンとは異なっています。互換性は IEEE Std 1003.1-1990 (“POSIX.1”) への対応により失われてしまいました。IEEE Std 1003.1-1990 (“POSIX.1”) 基本概念から:
4.3BSD は、指定のプロセスについてプロセスグループ ID を返す getpgrp() 関数を備えています。この関数はジョブ制御をサポートするのに使用されますが、既知のジョブ制御をする全てのシェルは、必ずこの関数に呼び出しプロセスを指定しています。そのためより簡単な AT&T System V UNIX getpgrp() で十分であり、 4.3BSD getpgrp() の追加された複雑さは POSIX.1 から省略されています。古い機能は getpgid() システムコールで利用できます。
エラー
getpgid() システムコールは次の場合以外は成功します:- [ ESRCH]
- pid で指定したプロセスに対応するプロセスが見つかりません。
規格
getpgrp() システムコールは、 IEEE Std 1003.1-1990 (“POSIX.1”) に適合しています。歴史
getpgrp() システムコールは、 4.0BSD で登場しました。 getpgid() システムコールは、 AT&T System V Release 4 UNIX での使用法に由来しています。June 4, 1993 | FreeBSD |