Man page - login_tty(3)

Packages contains this manual

Available languages:

en fr ja ru ro

Manual

OPENPTY

名 前
書 式
説 明
返 り 値
エ ラ ー
属 性
準 拠
注 意
バ グ
関 連 項 目
こ の 文 書 に つ い て

名 前

openpty, login_tty, forkpty - 端 末 ユ ー テ ィ リ テ ィ 関 数

書 式

#include <pty.h>

int openpty(int * amaster , int * aslave , char * name ,
const struct termios *
termp ,
const struct winsize *
winp );

pid_t forkpty(int * amaster , char * name ,
const struct termios *
termp ,
const struct winsize *
winp );

#include <utmp.h>

int login_tty(int fd );

-lutil で リ ン ク す る 。

説 明

openpty () 関 数 は 、 使 用 可 能 な 疑 似 端 末 (pseudoterminal) を 見 つ け て 、 マ ス タ と ス レ ー ブ の フ ァ イ ル デ ィ ス ク リ プ タ ー を amaster aslave に 入 れ て 返 す 。 name が NULL で な い 場 合 、 ス レ ー ブ の フ ァ イ ル 名 が name に 返 さ れ る 。 termp が NULL で な い 場 合 、 ス レ ー ブ の 端 末 パ ラ メ ー タ ー は termp の 値 に 設 定 さ れ る 。 winp が NULL で な い 場 合 、 ス レ ー ブ の ウ イ ン ド ウ サ イ ズ は winp に 設 定 さ れ る 。

login_tty () 関 数 は 、 フ ァ イ ル デ ィ ス ク リ プ タ ー fd で 参 照 さ れ る 端 末 に ロ グ イ ン す る 準 備 を す る ( fd は 実 際 の 端 末 デ バ イ ス で も 、 openpty () で 返 さ れ る 疑 似 端 末 の ス レ ー ブ で も よ い )。 具 体 的 に は 、 新 し い セ ッ シ ョ ン を 作 成 し 、 fd を 呼 び 出 し 元 の プ ロ セ ス の 制 御 端 末 と し 、 呼 び 出 し 元 の 標 準 入 力 ・ 標 準 出 力 ・ 標 準 エ ラ ー の ス ト リ ー ム を fd に 設 定 し た 後 、 fd を ク ロ ー ズ す る 。

forkpty () 関 数 は openpty (), fork (2), login_tty () を 組 み 合 わ せ 、 疑 似 端 末 を 操 作 す る 新 し い プ ロ セ ス を 生 成 す る 。 疑 似 端 末 の マ ス タ 側 を 参 照 す る フ ァ イ ル デ ィ ス ク リ プ タ ー は amaster で 返 さ れ る 。 name が NULL で な い 場 合 に は 、 ス レ ー ブ の フ ァ イ ル 名 を 返 す の に name が 指 す バ ッ フ ァ ー が 使 用 さ れ る 。 termp winp 引 数 は 、 NULL で な け れ ば 、 疑 似 端 末 の ス レ ー ブ 側 の 端 末 属 性 と ウ イ ン ド ウ サ イ ズ を 決 定 す る 。

返 り 値

openpty (), login_tty (), forkpty () の 呼 び 出 し が 成 功 し な か っ た 場 合 、 -1 が 返 さ れ て 、 errno は エ ラ ー を 示 す 値 に 設 定 さ れ る 。 成 功 し た 場 合 、 openpty (), login_tty () お よ び

forkpty () の 子 プ ロ セ ス は 0 を 返 し 、 forkpty () の 親 プ ロ セ ス は 子 プ ロ セ ス の プ ロ セ ス ID を 返 す 。

エ ラ ー

以 下 の 場 合 に openpty () は 失 敗 す る :

ENOENT

使 用 可 能 な 端 末 が な い 。

ioctl (2) が fd を 呼 び 出 し 元 の プ ロ セ ス の 制 御 端 末 に 設 定 す る の に 失 敗 し た 場 合 、 login_tty () は 失 敗 す る 。

openpty () と fork (2) の ど ち ら か が 失 敗 し た 場 合 、 forkpty () は 失 敗 す る 。

属 性

こ の 節 で 使 用 さ れ て い る 用 語 の 説 明 に つ い て は 、 attributes (7) を 参 照 。

Image grohtml-14845-1.png

準 拠

こ れ ら は BSD の 関 数 で あ り 、 glibc2 に 存 在 す る 。 POSIX で の 標 準 化 は さ れ て い な い 。

注 意

glibc 2.8 で 、 openpty () と forkpty () の 構 造 体 へ の ポ イ ン タ ー の 引 数 に const 修 飾 子 が 追 加 さ れ た 。

2.0.92 よ り 前 の バ ー ジ ョ ン の glibc で は 、 openpty () は BSD 疑 似 端 末 ペ ア の フ ァ イ ル デ ィ ス ク リ プ タ ー を 返 す 。 2.0.92 以 降 の glibc で は 、 openpty () は ま ず Unix 98 疑 似 端 末 ペ ア を オ ー プ ン し よ う と し 、 そ れ に 失 敗 し た 場 合 に BSD 疑 似 端 末 ペ ア の オ ー プ ン へ と 移 行 す る 。

バ グ

誰 も name に 対 し て ど の く ら い 大 き さ を 予 約 し て お け ば い い か 分 か ら な い 。 し た が っ て 、 NULL で な い name を 引 数 と し て openpty () や forkpty () を 呼 び 出 す の は 安 全 で あ る と は 言 え な い 。

関 連 項 目

fork (2), ttyname (3), pty (7)

こ の 文 書 に つ い て

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