Manpages

名 前

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 に は 該 当 す る も の が な い 。

属 性

マ ル チ ス レ ッ デ ィ ン グ (pthreads(7) 参 照 ) 関 数 tcgetpgrp() と tcsetpgrp() は ス レ ッ ド セ ー フ で あ る 。

準 拠

POSIX.1−2001.

注 意

こ の 関 数 は TIOCGPGRPTIOCGSID の ioctl 経 由 で 実 現 さ れ て い る 。 歴 史 こ れ ら の ioctl は 4.2BSD で 登 場 し た 。 こ れ ら の 関 数 は POSIX で 考 案 さ れ た も の で あ る 。

関 連 項 目

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

こ の 文 書 に つ い て

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