tty スペシャル・ファイル

目的

端末インターフェースの制御をサポートします。

説明

各プロセスごとに、 /dev/tty スペシャル・ファイルは、そのプロセスに関連した制御端末の同義語です。 メッセージを TTY ファイル、アプリケーション・プログラム、およびシェル・シーケンスに送信することによって、出力がリダイレクトされてもメッセージが端末に書き込まれるようにすることができます。 プログラムは、アクティブ端末を識別する必要がないように、表示出力をこのファイルに送ることもできます。

端末は、制御端末としてプロセスに属することができます。 制御端末を持つセッションの各プロセスには、同じ制御端末があります。 1 つの端末は、多くても 1 つのセッションの制御端末になることができます。 セッション・リーダーに制御端末がなく、まだセッションに関連付けられていない端末装置ファイルを ( オープン サブルーチンの O_NOCTTY (ファイルがない) オプションを使用せずに) 開いた場合、その端末はセッション・リーダーの制御端末になります。 セッション・リーダーでないプロセスが端末ファイルを開いた場合、または O_NOCTTY (ファイルがない) オプションを使用した場合、その端末は呼び出しプロセスの制御端末になりません。 制御端末がセッションに関連付けられると、そのフォアグラウンド・プロセス・グループは、セッション・リーダーのプロセス・グループに設定されます。

制御端末は、 フォーク サブルーチン中に子プロセスによって継承されます。 他のプロセスが引き続き端末ファイルをオープンしている場合、プロセスは、制御端末に関連したすべてのファイル記述子をクローズすることによって、その制御端末との関連付けを終了することはできません。 まだセッション・リーダーまたはグループ・リーダーではないプロセスは、 セット ID サブルーチンを使用して、その制御端末との関連を切断することができます。 古いセッションに残っている他のプロセスは、制御端末との関連を保持します。

制御端末に関連した最後のファイル記述子 (制御端末のセッションにないプロセスによって保持されているファイル記述子を含む) がクローズされると、制御端末と現行セッションとの関連付けが解除されます。 その後、関連付けを解除された制御端末は、新しいセッション・リーダーによって獲得することができます。

プロセスは、 TTY ファイルを開き、以下の Ioctl コマンドを発行することにより、制御端末との関連付けを除去することもできます。

ioctl (FileDescriptor, TIOCNOTTY, 0):

多くの場合、サーバー・プロセスと制御端末との関連付けを解除して、端末からの入力を受け取ったり、端末によって停止したりすることができないようにすると便利です。

このデバイス・ドライバーは、 POSIX および Berkeley の回線規律もサポートします。