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 に対応する端末のフォアグラウンドプロセスグループにする。 このとき、 fd は tcsetpgrp() を呼び出すプロセスの制御端末でなければならない。 さらに、 pgrp は、呼び出しを行うプロセスと同じセッションに 属する (メンバが空でない) プロセスグループでなければならない。
tcsetpgrp() がセッションに属するバックグラウンドグループプロセスのメンバから 呼び出され、かつ呼び出しを行うプロセスが SIGTTOU をブロックしたり 無視したりするようになっていない場合、 SIGTTOU シグナルは バックグラウンドプロセスグループの全てのメンバに送られる。
fd が呼び出しを行ったプロセスの制御端末を参照している場合、関数 tcgetpgrp() は、その制御端末のフォアグラウンドプロセスグループがあれば そのプロセスグループの ID を返す。 そのようなプロセスグループがなければ、現在プロセスグループ ID として使用されていない、1より大きな何らかの値が返される。 fd が呼び出しを行ったプロセスの制御端末を参照していない場合、 -1 が返され、 errno が適切に設定される。
成功した場合、 tcsetpgrp() は 0 を返す。そうでない場合、 -1 を返し、 errno を適切に設定する。
関数 tcgetpgrp() と tcsetpgrp() はスレッドセーフである。
POSIX.1-2001.
この関数は TIOCGPGRP と TIOCGSID の ioctl 経由で実現されている。
これらの ioctl は 4.2BSD で登場した。 これらの関数は POSIX で考案されたものである。
この man ページは Linux man-pages プロジェクトのリリース 3.79 の一部 である。プロジェクトの説明とバグ報告に関する情報は http://www.kernel.org/doc/man-pages/ に書かれている。
2014-01-13 | GNU |