.\" Copyright (c) 1983, 1991, 1993 .\" The Regents of the University of California. All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by the University of .\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\" @(#)getpgrp.2 8.1 (Berkeley) 6/4/93 .\" %FreeBSD: src/lib/libc/sys/getpgrp.2,v 1.19 2002/12/18 09:22:30 ru Exp % .\" .\" $FreeBSD$ .\" .Dd June 4, 1993 .Dt GETPGRP 2 .Os .Sh 名称 .Nm getpgrp .Nd プロセスグループの取得 .Sh ライブラリ .Lb libc .Sh 書式 .In unistd.h .Ft pid_t .Fn getpgrp void .Ft pid_t .Fn getpgid "pid_t pid" .Sh 解説 現在のプロセスのプロセスグループは .Fn getpgrp によって返されます。 .Fa pid によって識別されるプロセスのプロセスグループは .Fn getpgid によって返されます。 .Fa pid が 0 の場合、 .Fn getpgid は現在のプロセスのプロセスグループを返します。 .Pp プロセスグループはシグナルの配信用に使用され、 また端末によって入力の要求を調整するのにも使用されます。 端末と同じプロセスグループを持つ (1 つ以上の) プロセスは フォアグラウンドであり読み取りできます。 一方で、その他のプロセスが読み取ろうした場合は、 シグナルによってブロックさせられます。 .Pp このように、このシステムコールは .Xr csh 1 のようにジョブ制御のためにプロセスグループの作成を 行うプログラムによって使用されます。 .Fn tcgetpgrp 呼び出しと .Fn tcsetpgrp 呼び出しは制御端末のプロセスグループを取得 / 設定するのに使用されます。 .Sh 戻り値 .Fn getpgrp システムコールは、常に成功します。 成功裏に完了すると、 .Fn getpgid システムコールは指定したプロセスのプロセスグループを返します。 失敗すると、値 \-1 を .Va errno に設定してエラーを示します。 .Sh エラー .Fn getpgid システムコールは次の場合以外は成功します: .Bl -tag -width Er .It Bq Er ESRCH .Fa pid で指定したプロセスに対応するプロセスが見つかりません。 .El .Sh 関連項目 .Xr getsid 2 , .Xr setpgid 2 , .Xr termios 4 .Sh 歴史 .Fn getpgrp システムコールは .Bx 4.0 で登場しました。 .Fn getpgid システムコールは .At V.4 での使用法に由来しています。 .Sh 規格 .Fn getpgrp システムコールは .St -p1003.1-90 に適合しています。 .Sh 互換性 このバージョンの .Fn getpgrp システムコールは、 .Fa "pid_t pid" 引数を取らないという点で過去の Berkeley バージョンとは異なっています。 互換性は .St -p1003.1-90 への対応により失われてしまいました。 .Pp .St -p1003.1-90 基本概念から: .Pp .Bx 4.3 は、指定のプロセスについてプロセスグループ ID を返す .Fn getpgrp 関数を備えています。 この関数はジョブ制御をサポートするのに使用されますが、 既知のジョブ制御をする全てのシェルは、必ずこの関数に 呼び出しプロセスを指定しています。 そのためより簡単な .At V .Fn getpgrp で十分であり、 .Bx 4.3 .Fn getpgrp の追加された複雑さは POSIX.1 から省略されています。 古い機能は .Fn getpgid システムコールで利用できます。