スポンサーリンク

PTY(4) FreeBSD カーネルインタフェースマニュアル PTY(4)

名称

pty − 疑似端末ドライバ

書式

pseudo-device pty [count]

解説

pty ドライバは 疑似端末と呼ばれるデバイス対のサポートを提供します。疑似端 末とは、 マスタデバイスと スレーブデバイスという一対のキャラクタ型デバイ スです。スレーブデバイスは、 tty(4) に記述されているものと同一のインタ フェースをプロセスに提供します。ただし、 tty(4) に記述されるインタフェー スを提供するような他のデバイスはすべて、根底に何らかのハードウェアデバイ スを持つのに対し、スレーブデバイスは疑似端末のマスタ側を通じて別のプロセ スに操作されます。つまり、マスタデバイスに書き込まれた内容はすべてスレー ブデバイスへ入力として送られ、スレーブデバイスに書き込まれた内容はすべて マスタデバイスへ入力として渡されます。

カーネル設定ファイル中の指定にオプションの count を与えると、その数だけ疑 似端末の組が構成されます。 count のデフォルトは 32 です。

次に挙げる ioctl(2) 呼び出しは疑似端末にのみ適用できます:

       TIOCSTOP

端末への出力を止めます (例えば ‘^S’ を押すように)。パラメータ は取りません。

TIOCSTART
( TIOCSTOP か ‘^S’ を押すことで止められていた ) 出力を再開し ます。パラメータは取りません。

TIOCPKT
パケットモードを有効/無効にします。パケットモードは非 0 のパ ラメータを指定 (参照渡し) すると有効になり、 0 を指定 (参照渡 し) すると無効になります。疑似端末のマスタ側に適用された場 合、以後端末から read(2) を呼び出すと、1 個の 0 バイト (シン ボル定義では TIOCPKT_DATA ) に続いて疑似端末のスレーブ側に書 き込まれたデータが返されるか、あるいは制御状態情報を表す単一 バイトが返されるようになります。後者の場合、返されるバイトは 次のビットの 0 個以上の和 (OR) になります:

TIOCPKT_FLUSHREAD
端末の読み込みキューがフラッシュされたと き

TIOCPKT_FLUSHWRITE
端末の書き込みキューがフラッシュされたと き

TIOCPKT_STOP
端末への出力が ‘^S’ のようにして止められ たとき

TIOCPKT_START
端末への出力が再開されたとき

TIOCPKT_DOSTOP
t_stopc
が ‘^S’ で t_startc が ‘^Q’ と なったとき

TIOCPKT_NOSTOP
START 文字、STOP 文字が ‘^S/^Q’ でなく なったとき

このモードが有効な間、マスタ側から読み込 まれる制御状態情報の存在は select(2) で例 外条件として検出できます。

rlogin(1)rlogind(8) はこのモードを用 いて、リモート側でエコーしローカル側で ‘^S/^Q’ フロー制御する、出力のバックフ ラッシュが適切に行なわれるリモートログイ ン機構を実装しています。その他の似たプロ グラムでもこのモードが利用できます。

TIOCUCNTL
少数の単純なユーザ ioctl(2) コマンドを、 TIOCPKT と似たプロト コルを用いて疑似端末を通して渡すことのできるモードを、有効/無 効にします。 TIOCUCNTL モードと TIOCPKT モードは互いに排他的 です。このモードは疑似端末のマスタ側から設定します。非 0 のパ ラメータを指定 (参照渡し) すると有効になり、 0 を指定 (参照渡 し) すると無効になります。以後マスタ側から read(2) を呼び出す と、 1 個の 0 バイトに続いて疑似端末のスレーブ側に書き込まれ たデータが返されるか、あるいはスレーブ側のユーザ制御操作を表 す単一のバイトが返されるようになります。ユーザ制御コマンド は、データを持たない特別な ioctl(2) 操作で構成されます。コマ ンドは UIOCCMD(n) の形で渡します。ここで、 n は 1 から 255 の 範囲の数字です。操作値 n は、マスタ側からの次回の read(2) に より単一バイトとして受け取られます。 ioctl(2) UIOCCMD(0) は何 も操作は行いませんが (no-op)、この機能の有無を調べるために使 えます。 TIOCPKT モードの場合と同様、コマンド操作は select(2) で例外条件として検出できます。

TIOCREMOTE
疑似端末のマスタ側用のモードで、 TIOCPKT とは独立です。この モードでは (端末のモードに関わらず)、疑似端末への入力をフロー 制御し、入力編集を行わないようにします。制御端末へ書き込みを 行うと、その端末から読み込むプロセスのためにレコード境界が作 られます。通常の使用では、データの書き込みはそのデータが端末 から行入力されたようになり、 0 バイトの書き込みはファイル終了 文字が入力されたようになります。 TIOCREMOTE は、ウィンドウマ ネージャでリモート行編集を行うときや、入力をフロー制御する必 要のあるときに利用できます。

関連ファイル

       /dev/pty[p-sP-S][0-9a-v]

マスタ疑似端末
/dev/tty[p-sP-S][0-9a-v]
スレーブ疑似端末

診断

ありません。

関連項目

tty(4)

歴史

pty ドライバは 4.2BSD から登場しました。

4.2 Berkeley Distribution November 30, 1993 4.2 Berkeley Distribution

スポンサーリンク