PTS(4) Linux Programmer’s Manual PTS(4) 名前 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(1) や passwd(1) のような) 通常はパイプからの入力を拒否 するプログラムに、入力を送信するためにも使用できる。 ファイル /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) Linux 2002-10-09 PTS(4)
PTS(4) Linux Programmer’s Manual PTS(4) NAME ptmx and pts - pseudo-terminal master and slave DESCRIPTION The file /dev/ptmx is a character file with major number 5 and minor number 2, usually of mode 0666 and owner.group of root.root. It is used to create a pseudo-terminal master and slave pair. When a process opens /dev/ptmx, it gets a file descriptor for a pseudo- terminal master (PTM), and a pseudo-terminal slave (PTS) device is cre- ated in the /dev/pts directory. Each file descriptor obtained by open- ing /dev/ptmx is an independent PTM with its own associated PTS, whose path can be found by passing the descriptor to ptsname(3). Before opening the pseudo-terminal slave, you must pass the master’s file descriptor to grantpt(3) and unlockpt(3). Once both the pseudo-terminal master and slave are open, the slave pro- vides processes with an interface that is identical to that of a real terminal. Data written to the slave is presented on the master descriptor as input. Data written to the master is presented to the slave as input. In practice, pseudo-terminals are used for implementing terminal emula- tors such as xterm(1), in which data read from the pseudo-terminal mas- ter is interpreted by the application in the same way a real terminal would interpret the data, and for implementing remote-login programs such as sshd(8), in which data read from the pseudo-terminal master is sent across the network to a client program that is connected to a ter- minal or terminal emulator. Pseudo-terminals can also be used to send input to programs that nor- mally refuse to read input from pipes (such as su(1), and passwd(1)). FILES /dev/ptmx, /dev/pts/* NOTES The Linux support for the above (known as Unix98 pty naming) is done using the devpts file system, that should be mounted on /dev/pts. Before this Unix98 scheme, master ptys were called /dev/ptyp0, ... and slave ptys /dev/ttyp0, ... and one needed lots of preallocated device nodes. SEE ALSO getpt(3), grantpt(3), ptsname(3), unlockpt(3), pty(7) COLOPHON This page is part of release 3.22 of the Linux man-pages project. A description of the project, and information about reporting bugs, can be found at http://www.kernel.org/doc/man-pages/. Linux 2002-10-09 PTS(4)
Copyright(C) linux-cmd.com All Rights Reserved. Author Takayuki Yukawa