ptmx, pts -
擬似端末のマスタとスレーブ
ファイル
/dev/ptmx
は、メジャーナンバー
(major number) 5、
マイナーナンバー (minor
number) 2
を持つキャラクタ・ファイルであり、
通常、モードは 0666
で、所有者.グループは
root.root である。
このファイルは、擬似端末
(pseudoterminal)
のマスタとスレーブの
ペアを作成するために使用される。
プロセスが
/dev/ptmx
をオープンすると、そのプロセスには
擬似端末マスタ (pseudoterminal
master; PTM) へのファイル・
ディスクリプタが返され、
/dev/pts
ディレクトリに擬似端末スレーブ
(pseudoterminal slave; PTS)
デバイスが作成される。
/dev/ptmx
をオープンして得られるファイル・ディスクリプタは
それぞれ独立の PTM
であり、対応する PTS
を各々持つ。 PTS
のパス名は、PTM
のファイル・ディスクリプタを
ptsname(3)
に渡すと知ることができる。
擬似端末スレーブをオープンする前に、必ず、マスタのファイル・ディスクリプタを
引き数として
grantpt(3) と
unlockpt(3)
を呼び出さなければならない。
擬似端末のマスタとスレーブの両方がオープンされた後は、スレーブは、
プロセスに対して、実端末
(real terminal)
と全く同じインタフェースを提供する。
スレーブに書かれたデータはマスタ・ディスクリプタに対する入力として扱われ、
マスタに書かれたデータはスレーブに対する入力として扱われる。
実例をあげると、擬似端末は
xterm(1)
のような端末エミュレータを実装するのに使用されている。
端末エミュレータでは、擬似端末のマスタから読み込まれたデータは、
アプリケーションにとって実端末のデータと全く同じもののように見える。
また、
sshd(8)
のようなリモート・ログイン用のプログラムの実装では、
擬似端末マスタから読み込まれたデータは、ネットワークを経由して、
端末や端末エミュレータに接続されているクライアント・プログラムに送信される。
擬似端末は、 (
su(1) や
passwd(1) のような)
通常はパイプからの入力を拒否するプログラムに、
入力を送信するためにも使用できる。
ファイル¶
/dev/ptmx,
/dev/pts/*
(UNIX 98 pseudoterminal naming と呼ばれる)
上記の機能の Linux
でのサポートは、通常
/dev/pts
にマウントされるはずの
devpts
ファイルシステムを通して実現されている、
この UNIX 98
スキームが導入される前は、マスタ擬似端末は
/dev/ptyp0, ...
、スレーブ擬似端末は
/dev/ttyp0, ...
と呼ばれており、あらかじめたくさんのデバイス・ノードを割り当てて
おく必要があった。
関連項目¶
getpt(3),
grantpt(3),
ptsname(3),
unlockpt(3),
pty(7)
この文書について¶
この man ページは Linux
man-pages
プロジェクトのリリース
3.65 の一部
である。プロジェクトの説明とバグ報告に関する情報は
http://www.kernel.org/doc/man-pages/
に書かれている。