名 前
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 が 無 効 な 値 で あ る 。
呼 び 出
し を 行 っ た プ
ロ セ ス が 制 御
端 末 を 持 っ て
い な い 、 も し
く は 制 御 端 末
を 持 っ て い る
が fd で 参 照 さ
れ る も の と は
異 な る 、 tcsetpgrp()
の 場 合 は 、 fd
で 指 定 さ れ た
制 御 端 末 が す
で に 呼 び 出 し
を 行 っ た プ ロ
セ ス の セ ッ シ
ョ ン と 関 係 の
な い も の に な
っ て い る 際 に
も 、 こ の エ ラ
ー と な る 。 pgrp が 有 効 な 値 だ が 、 呼 び 出 し を 行 っ た プ ロ セ ス と 同 じ セ ッ シ ョ ン に 属 す る プ ロ セ ス の プ ロ セ ス グ ル ー プ ID に は 該 当 す る も の が な い 。 属 性マ ル チ ス レ ッ デ ィ ン グ (pthreads(7) 参 照 ) 関 数 tcgetpgrp() と tcsetpgrp() は ス レ ッ ド セ ー フ で あ る 。 準 拠POSIX.1−2001. 注 意こ の 関 数 は TIOCGPGRP と TIOCGSID の ioctl 経 由 で 実 現 さ れ て い る 。 歴 史 こ れ ら の ioctl は 4.2BSD で 登 場 し た 。 こ れ ら の 関 数 は POSIX で 考 案 さ れ た も の で あ る 。 関 連 項 目setpgid(2), setsid(2), credentials(7) こ の 文 書 に つ い てこ の man ペ ー ジ は Linux man−pages プ ロ ジ ェ ク ト の リ リ ー ス 3.79 の 一 部 で あ る 。 プ ロ ジ ェ ク ト の 説 明 と バ グ 報 告 に 関 す る 情 報 は http://www.kernel.org/doc/man−pages/ に 書 か れ て い る 。 |