EN JA
TCGETPGRP(3)
TCGETPGRP(3) Linux Programmer's Manual TCGETPGRP(3)

名前

tcgetpgrp, tcsetpgrp -端末のフォアグラウンド・プロセス・グループの取得/設定を行う

書式

#include <unistd.h>
 
pid_t tcgetpgrp(int fd );
 
int tcsetpgrp(int fd , pid_t pgrp );

説明

関数 tcgetpgrp() は、 fd に対応する端末のフォアグラウンド・プロセス・グループのプロセス・グループ ID を返す。 fd で指定された端末は、呼び出しを行うプロセスの制御端末でなければならない。

関数 tcsetpgrp() は、プロセス・グループID が pgrp のプロセス・グループを fd に対応する端末のフォアグラウンド・プロセス・グループにする。このとき、 fdtcsetpgrp() を呼び出すプロセスの制御端末でなければならない。さらに、 pgrp は、呼び出しを行うプロセスと同じセッションに属する (メンバが空でない) プロセス・グループでなければならない。

tcsetpgrp() がセッションに属するバックグラウンド・グループ・プロセスのメンバから呼び出され、かつ呼び出しを行うプロセスが SIGTTOU をブロックしたり無視したりするようになっていない場合、 SIGTTOU シグナルはバックグラウンド・プロセス・グループの全てのメンバに送られる。

返り値

fd が呼び出しを行ったプロセスの制御端末を参照している場合、関数 tcgetpgrp() は、その制御端末のフォアグラウンド・プロセス・グループがあればそのプロセス・グループの ID を返す。そのようなプロセス・グループがなければ、現在プロセス・グループ ID として使用されていない、1より大きな何らかの値が返される。 fd が呼び出しを行ったプロセスの制御端末を参照していない場合、-1 が返され、 errno が適切に設定される。

成功した場合、 tcsetpgrp() は 0 を返す。そうでない場合、-1 を返し、 errno を適切に設定する。

エラー

EBADF
fd が適切なファイル・ディスクリプターでない。
EINVAL
pgrp が無効な値である。
ENOTTY
呼び出しを行ったプロセスが制御端末を持っていない、もしくは制御端末を持っているが fd で参照されるものとは異なる、 tcsetpgrp() の場合は、 fd で指定された制御端末がすでに呼び出しを行ったプロセスのセッションと関係のないものになっている際にも、このエラーとなる。
EPERM
pgrp が有効な値だが、呼び出しを行ったプロセスと同じセッションに属するプロセスのプロセス・グループ ID には該当するものがない。

準拠

POSIX.1-2001.

注意

この関数は TIOCGPGRPTIOCGSID の ioctl 経由で実現されている。

歴史

これらの ioctl は 4.2BSD で登場した。これらの関数は POSIX で考案されたものである。

関連項目

setpgid(2), setsid(2), credentials(7)

この文書について

この man ページは Linux man-pages プロジェクトのリリース 3.51 の一部である。プロジェクトの説明とバグ報告に関する情報は http://www.kernel.org/doc/man-pages/ に書かれている。
2003-01-28 GNU