名前


ptmx and pts - 擬似端末のマスタとスレーブ

説明


ファイル /dev/ptmx は、メジャーナンバー (major number) 5、 マイナーナンバー (minor number) 2 を持つキャラクタ・ファイルであり、 通常、モードは 0666 で、所有者.グループは root.root である。 このファイルは、擬似端末 (pseudo-terminal) のマスタとスレーブの ペアを作成するために使用される。

プロセスが /dev/ptmx をオープンすると、そのプロセスには 擬似端末マスタ (pseudo-terminal master; PTM) へのファイル・ ディスクリプタが返され、 /dev/pts ディレクトリに擬似端末スレーブ (pseudo-terminal slave; PTS) デバイスが作成される。 /dev/ptmx をオープンして得られるファイル・ディスクリプタは それぞれ独立の PTM であり、対応する PTS を各々持つ。 PTS のパス名は、PTM のファイル・ディスクリプタを ptsname(3) に渡すと知ることができる。

擬似端末スレーブをオープンする前に、必ず、マスタのファイル・ディスクリプタを 引き数として grantpt(3)unlockpt(3) を呼び出さなければならない。

擬似端末のマスタとスレーブの両方がオープンされた後は、スレーブは、 プロセスに対して、実端末 (real terminal) と全く同じインタフェースを提供する。

スレーブに書かれたデータはマスタ・ディスクリプタに対する入力として扱われ、 マスタに書かれたデータはスレーブに対する入力として扱われる。

実例をあげると、擬似端末は xterm(1) のような端末エミュレータを実装するのに使用されている。 端末エミュレータでは、擬似端末のマスタから読み込まれたデータは、 アプリケーションにとって実端末のデータと全く同じもののように見える。 また、 sshd(8) のようなリモート・ログイン用のプログラムの実装では、 擬似端末マスタから読み込まれたデータは、ネットワークを経由して、 端末や端末エミュレータに接続されているクライアント・プログラムに送信される。

擬似端末は、 (su(8) や passwd(8) のような) 通常はパイプからの入力を拒否するプログラムに、 入力を送信するためにも使用できる。

ファイル


/dev/ptmx, /dev/pts/*

備考


(Unix98 pty naming と呼ばれる) 上記の機能の Linux でのサポートは、 通常 /dev/pts にマウントされるはずの devpts ファイルシステムを通して実現されている、

この Unix98 スキームが導入される前は、マスタ擬似端末は /dev/ptyp0, ... 、スレーブ擬似端末は /dev/ttyp0, ... と呼ばれており、あらかじめたくさんのデバイス・ノードを割り当てて おく必要があった。

関連項目


getpt(3), grantpt(3), ptsname(3), unlockpt(3), pty(7)

openSUSE Logo

コンテンツ