|
HOME > Linux Tips ( 目次 ) > Linux コマンド 一覧表 > p > pty - 約束事その他の説明 pty - 約束事その他の説明 - Linux コマンド集 一覧表名前pty - 擬似端末インタフェース 説明
擬似端末 (pseudo-terminal) は、双方向通信チャンネルを提供する
仮想キャラクタデバイスのペアである。
チャンネルの一方の端点は
マスタ (master)
と呼ばれ、もう一方の端点は
スレーブ (slave)
と呼ばれる。
擬似端末のスレーブは、伝統的な端末と全く同じ動作をするインタフェースを
提供する。端末に接続されることを想定しているプロセスは擬似端末の
スレーブをオープンすることができ、それ以降はマスタ側をオープン
しているプログラムからそのプロセスを制御することができる。
端末で入力されたのと同じように、
マスタ側に書き込まれた全てのデータは、スレーブ側のプロセスに送られる。
例えば、マスタデバイスに割り込みキャラクタ (通常は control-C) を書き込むと、
スレーブに接続されているフォアグラウンド・プロセスグループに対して
割り込みシグナル (SIGINT) が生成される。
反対に、擬似端末のスレーブ側に書き込まれた全てのデータは、
マスタ側に接続されているプロセスから読み出すことができる。
擬似端末は、ネットワークログインサービス
(
ssh
(1),
rlogin
(1),
telnet
(1))や端末エミュレータ、
script
(1),
screen
(1),
expect
(1) などのアプリケーションで使用されている。
Unix 98 擬似端末
未使用の Unix 98 擬似端末マスタをオープンするには
posix_openpt
(3) を呼び出す
(この関数はマスタ・クローン・デバイス (master clone device),
/dev/ptmx
をオープンする;
pts
(4) を参照)。
プログラム固有の初期化処理を実行し、
grantpt
(3) を使ってスレーブデバイスの所有権や許可を変更し、
unlockpt
(3) を使ってスレーブのロック解除を行うと、
ptsname
(3) が返す名前を渡して
open
(2) を呼び出すことにより
対応するスレーブデバイスをオープンできるようになる。
BSD 擬似端末BSD 風の擬似端末はあらかじめ作成されたペアとして提供される。その名前は /dev/ptyXY (マスタ側)、 /dev/ttyXY (スレーブ側) である。ここで、 X は [p-za-e] の 16文字のうちの一文字、 Y は [0-9a-f] の 16文字のうちの一文字である (X, Y に使われる文字の正確な範囲は Unix の実装により異なる)。 例えば、 /dev/ptyp1 と /dev/ttyp1 は BSD 擬似端末ペアを構成する。 プロセスが未使用の擬似端末ペアを見つけるには、 各擬似端末のマスタの open (2) を試み、open が成功するまでこれを繰り返す。 マスタを open すると、対応する擬似端末のスレーブも open できるようになる (スレーブの名前は、マスタの名前の "pty" を "tty" に置き換えたものである)。 注意
パケット・モード操作の制御を行う
TIOCPKT
ioctl
()の説明は
tty_ioctl
(4) に書かれている。
ファイル
/dev/ptmx
(Unix 98 マスタ・クローン・デバイス)
関連項目
select
(2),
setsid
(2),
forkpty
(3),
openpty
(3),
termios
(3),
pts
(4),
tty
(4),
tty_ioctl
(4)
|
|