TCGETPGRP
Section: Linux Programmer's Manual (3)
Updated: 2003-01-28
Index
JM Home Page
roff page
名前
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
を適切に設定する。
エラー
- EBADF
-
fd
は有効なファイル記述子でない。
- EINVAL
-
pgrp
が無効な値である。
- ENOTTY
-
呼び出しを行ったプロセスが制御端末を持っていない、もしくは
制御端末を持っているが
fd
で参照されるものとは異なる、
tcsetpgrp()
の場合は、
fd
で指定された制御端末がすでに呼び出しを行ったプロセスのセッション
と関係のないものになっている際にも、このエラーとなる。
- EPERM
-
pgrp
が有効な値だが、呼び出しを行ったプロセスと同じセッションに属する
プロセスのプロセス・グループ ID には該当するものがない。
準拠
POSIX.1-2001.
注意
この関数は
TIOCGPGRP
と
TIOCGSID
の ioctl 経由で実現されている。
歴史
これらの ioctl は 4.2BSD で登場した。
これらの関数は POSIX で考案されたものである。
関連項目
setpgid(2),
setsid(2),
credentials(7)
Index
- 名前
-
- 書式
-
- 説明
-
- 返り値
-
- エラー
-
- 準拠
-
- 注意
-
- 歴史
-
- 関連項目
-
This document was created by
man2html,
using the manual pages.
Time: 04:32:07 GMT, November 19, 2007