伝送終了文字(EOT)とは
電気通信において、伝送終了文字(EOT: End-of-Transmission character)は、データ送信側が受信側に対してデータ伝送の終了を通知するために使用される
制御文字です。このデータには、テキストだけでなく、メッセージのヘッダなども含まれます。EOTは、回線の解放、
端末の切断、受信側の待機状態への移行など、様々な場面で使用されます。
最も一般的な使用例としては、
UNIX系のシステムにおけるファイルの終端(EOF)の通知があります。具体的には、
端末ドライバに対して、入力が終了したことを伝え、入力を待機しているプログラムを終了させる役割を担います。
EOTの技術的な詳細
ASCIIと
Unicodeでは、EOTはU+0004に割り当てられています。これは、キーボードから`Ctrl + D`を入力することで送信でき、
キャレット記法では`^D`と表現されます。また、
UnicodeにはEOTの図形表現として、U+2404(␄)とU+2301(⌁)も用意されています。
UNIX系OSにおけるEOTの利用
UNIX系OS(
Linuxなど)では、`Ctrl + D`(EOT)は、DOSにおける`Ctrl + Z`(SUB)とは異なる役割を持ちます。DOSでは`Ctrl + Z`は、テキストの終了位置を示すためにファイルに記録されますが、UNIXでは`Ctrl + D`は、
端末ドライバにファイルの終端を通知するためだけに使用され、ファイルに書き込まれることはありません。
UNIXにおいて、end-of-file文字(デフォルトはEOT)が入力されると、
端末ドライバは入力バッファにあるすべての文字を即座にプログラムへ送信します。通常、ドライバは改行文字などが入力されるまで文字をバッファに溜め込みますが、EOTが入力された場合はその限りではありません。入力バッファが空の場合、プログラムは0バイトを読み取り、これをファイルの終端として認識します。
具体例:catコマンドでの挙動
この動作は、UNIXの`cat`コマンドで確認できます。引数なしで`cat`コマンドを実行すると、キーボードからの入力を待ち受け、入力された内容を画面に出力します。ここで、文字を入力した後、`Ctrl + D`を押すと、入力した文字が画面に表示されます。何も入力せずに`Ctrl + D`を押すと、入力ストリームが終了し、`cat`コマンドは終了します。`Ctrl + V`の後に`Ctrl + D`を押すと、EOTコード自体が入力されます。
rawモードでの挙動
端末ドライバがrawモードの場合、
制御文字は解釈されず、EOT文字はそのままプログラムに送られます。プログラムはEOTバイトを自由に解釈できます。通常、プログラムはEOTをテキストの終了指示として処理し、DOSプログラムにおける`Ctrl + Z`と同様の挙動を示します。
EOT文字は、
IBM、
バロースなどの
メインフレームコンピュータシステムにおける
通信プロトコルでも利用されます。
IBM 3270のPoll/Selectや
バロースTD830などのプロトコルでは、EOTは2つの協調動作するコンピュータ間での通信シーケンスを終了するために使用されます。
例えば、Poll(データの要求)やSelect(データの送信)操作では、ポーリング側とポーリングされる側のコンピュータ間で2回の往復通信が行われ、最後にEOT文字が送信されます。
まとめ
伝送終了文字(EOT)は、データ伝送の完了を通知する重要な
制御文字であり、様々なシステムやプロトコルで利用されています。
UNIX系OSにおけるファイルの終端通知や、
メインフレームでの通信シーケンスの終了など、その用途は多岐に渡ります。EOTの役割を理解することは、データ通信の仕組みを理解する上で非常に重要です。
関連項目
制御文字
ASCII
*
ショートカットキー