1 .\" This man page was written by Jeremy Phelps <jphelps@notreached.net>.
4 .\" %%%LICENSE_START(FREELY_REDISTRIBUTABLE)
5 .\" Redistribute and revise at will.
8 .\"*******************************************************************
10 .\" This file was generated with po4a. Translate the source file.
12 .\"*******************************************************************
13 .TH PTS 4 2002\-10\-09 Linux "Linux Programmer's Manual"
15 ptmx, pts \- 擬似端末のマスタとスレーブ
17 ファイル \fI/dev/ptmx\fP は、メジャーナンバー (major number) 5、 マイナーナンバー (minor number) 2
18 を持つキャラクタ・ファイルであり、 通常、モードは 0666 で、所有者.グループは root.root である。 このファイルは、擬似端末
19 (pseudoterminal) のマスタとスレーブの ペアを作成するために使用される。
21 プロセスが \fI/dev/ptmx\fP をオープンすると、そのプロセスには 擬似端末マスタ (pseudoterminal master; PTM)
22 へのファイル・ ディスクリプタが返され、 \fI/dev/pts\fP ディレクトリに擬似端末スレーブ (pseudoterminal slave; PTS)
23 デバイスが作成される。 \fI/dev/ptmx\fP をオープンして得られるファイル・ディスクリプタは それぞれ独立の PTM であり、対応する PTS
24 を各々持つ。 PTS のパス名は、PTM のファイル・ディスクリプタを \fBptsname\fP(3) に渡すと知ることができる。
26 擬似端末スレーブをオープンする前に、必ず、マスタのファイル・ディスクリプタを 引き数として \fBgrantpt\fP(3) と
27 \fBunlockpt\fP(3) を呼び出さなければならない。
29 擬似端末のマスタとスレーブの両方がオープンされた後は、スレーブは、 プロセスに対して、実端末 (real terminal)
32 スレーブに書かれたデータはマスタ・ディスクリプタに対する入力として扱われ、 マスタに書かれたデータはスレーブに対する入力として扱われる。
34 実例をあげると、擬似端末は \fBxterm\fP(1) のような端末エミュレータを実装するのに使用されている。
35 端末エミュレータでは、擬似端末のマスタから読み込まれたデータは、 アプリケーションにとって実端末のデータと全く同じもののように見える。 また、
36 \fBsshd\fP(8) のようなリモート・ログイン用のプログラムの実装では、 擬似端末マスタから読み込まれたデータは、ネットワークを経由して、
37 端末や端末エミュレータに接続されているクライアント・プログラムに送信される。
39 擬似端末は、 (\fBsu\fP(1) や \fBpasswd\fP(1) のような) 通常はパイプからの入力を拒否するプログラムに、
42 \fI/dev/ptmx\fP, \fI/dev/pts/*\fP
44 (UNIX 98 pseudoterminal naming と呼ばれる) 上記の機能の Linux でのサポートは、通常 \fI/dev/pts\fP
45 にマウントされるはずの \fIdevpts\fP ファイルシステムを通して実現されている、
47 この UNIX 98 スキームが導入される前は、マスタ擬似端末は \fI/dev/ptyp0\fP, ... 、スレーブ擬似端末は
48 \fI/dev/ttyp0\fP, ... と呼ばれており、あらかじめたくさんのデバイス・ノードを割り当てて おく必要があった。
50 \fBgetpt\fP(3), \fBgrantpt\fP(3), \fBptsname\fP(3), \fBunlockpt\fP(3), \fBpty\fP(7)
52 この man ページは Linux \fIman\-pages\fP プロジェクトのリリース 3.50 の一部
53 である。プロジェクトの説明とバグ報告に関する情報は
54 http://www.kernel.org/doc/man\-pages/ に書かれている。