Provided by: manpages-ja_0.5.0.0.20221215+dfsg-1_all bug

名前

       pty - 擬似端末インターフェース

説明

       擬似端末 (pseudoterminal; "pty" と略されることもある) は、 双方向通信チャンネルを提供する仮想キャラクター
       デバイスのペアである。  チャンネルの一方の端点は  マスタ  (master)  と呼ばれ、もう一方の端点は   スレーブ
       (slave) と呼ばれる。

       擬似端末のスレーブは、伝統的な端末と全く同じ動作をするインターフェースを 提供する。端末に接続されることを
       想定しているプロセスは擬似端末の スレーブをオープンすることができ、それ以降はマスタ側をオープン  している
       プログラムからそのプロセスを制御することができる。  端末で入力されたのと同じように、 マスタ側に書き込まれ
       た全てのデータは、スレーブ側のプロセスに送られる。  例えば、マスタデバイスに割り込みキャラクター  (通常は
       control-C) を書き込むと、 スレーブに接続されているフォアグラウンドプロセスグループに対して 割り込みシグナ
       ル (SIGINT)  が生成される。 反対に、擬似端末のスレーブ側に書き込まれた全てのデータは、 マスタ側に接続され
       ているプロセスから読み出すことができる。

       Data  flow  between  master  and  slave  is  handled  asynchronously, much like data flow with a physical
       terminal.  Data written to the slave will be available at the master promptly, but may not  be  available
       immediately.   Similarly,  there  may  be a small processing delay between a write to the master, and the
       effect being visible at the slave.

       歴史的に見ると BSD と System V の2種類の擬似端末の API が発展してきている。 SUSv1 は System V API  に基づ
       いた擬似端末  API  を標準化しており、 擬似端末を使用する新しいプログラムはすべてこの API を採用すべきであ
       る。

       Linux では BSD 風と (標準化された) System V 風の擬似端末を提供している。 System V 風の端末は、Linux  シス
       テムでは一般に UNIX 98 擬似端末と呼ばれている。

       カーネル     2.6.4     以降では、BSD     風の擬似端末は廃止予定とされている。この機能は、カーネル作成時に
       CONFIG_LEGACY_PTYS オプションを無効にすることで無効にできる (Linux 2.6.30  以降では、メインラインのカーネ
       ルでは、このオプションはデフォルトで無効になっている)。新しいアプリケーションでは、UNIX 98 擬似端末を使用
       すべきである。

   UNIX 98 擬似端末
       未使用の UNIX 98 擬似端末マスタをオープンするには posix_openpt(3)  を呼び出す (この関数はマスタクローンデ
       バイス  (master clone device), /dev/ptmx をオープンする; pts(4)  を参照)。 プログラム固有の初期化処理を実
       行し、 grantpt(3)  を使ってスレーブデバイスの所有権や許可を変更し、 unlockpt(3)  を使ってスレーブのロック
       解除を行うと、  ptsname(3)   が返す名前を渡して  open(2)  を呼び出すことにより 対応するスレーブデバイスを
       オープンできるようになる。

       Linux カーネルでは、利用できる UNIX 98 擬似端末の数に上限を設けている。 2.6.3  以前のカーネルでは、この上
       限はカーネルのコンパイル時の設定 (CONFIG_UNIX98_PTYS)  である。許可される擬似端末の数は最大 2048 であり、
       デフォルトの設定は 256 である。 カーネル 2.6.4 以降では、この上限は /proc/sys/kernel/pty/max 経由で動的に
       調整可能となっている。また、  /proc/sys/kernel/pty/nr で現在使用中の擬似端末の数を取得できる。 この 2つの
       ファイルの詳細は proc(5)  を参照。

   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" に置き換えたものである)。

ファイル

       /dev/ptmx
              UNIX 98 マスタクローンデバイス

       /dev/pts/*
              UNIX 98 スレーブデバイス

       /dev/pty[p-za-e][0-9a-f]
              BSD マスタデバイス

       /dev/tty[p-za-e][0-9a-f]
              BSD スレーブデバイス

注意

       擬似端末は、ネットワークログインサービス  (ssh(1),  rlogin(1),  telnet(1)) や 端末エミュレータ (xterm(1),
       script(1), screen(1), tmux(1), unbuffer(1), expect(1) など) のアプリケーションで使用されている。

       パケットモード操作の制御を行う TIOCPKT ioctl(2) の説明は ioctl_tty(2) に書かれている。

       BSD ioctl(2)  の TIOCSTOP, TIOCSTART, TIOCUCNTL, TIOCREMOTE はこれまでのところ  Linux  では実装されていな
       い。

関連項目

       ioctl_tty(2), select(2), setsid(2), forkpty(3), openpty(3), termios(3), pts(4), tty(4)

この文書について

       この  man ページは Linux man-pages プロジェクトのリリース 5.10 の一部である。プロジェクトの説明とバグ報告
       に関する情報は https://www.kernel.org/doc/man-pages/ に書かれている。