UNIXでの使用法
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2018/04/29 04:43 UTC 版)
LinuxなどのUNIX系OSにおけるCtrl-D(EOT)の使用法は、DOSにおいて類似の役割を持つCtrl-Z(SUB)とは異なる。DOSのCtrl-Zは、テキストがどこで終了するかを示すために、そのバイトが実際に送信またはファイルに記録される。それとは対照的に、UnixのCtrl-Dは、端末ドライバにファイルの終端を通知するのに使用されるだけで、ファイルや端末からCtrl-Dを読み取ったりそれを書き込んだりしても、特別な意味は持たない。 UNIXでは、end-of-file文字(デフォルトではEOT)によって、端末ドライバは入力バッファ内の全ての文字を直ちに利用可能状態にする。通常、ドライバはend-of-line文字(改行コード等)が現れるまで文字を収集する。入力バッファが空である場合(最後のend-of-line文字やend-of-file文字から文字が入力されていない場合)、端末から読み取るプログラムは0バイトを読み取る。UNIXでは、このような状態はファイルの終端に達したものとみなされる。 これは、UNIX系OSではcatプログラムで実証できる。引数なしでcatコマンドを実行すると、キーボードからの入力を受け付け、その内容を画面に出力する。↵ Enter以外の文字を入力し、最後にCtrl+Dを押下する。その時点で入力された文字はcatコマンドに送られ、画面に書き込まれる。何も文字を入力せずにCtrl+Dを押下すると、入力ストリームは終了し、プログラムは終了する。Ctrl+Vの後にCtrl+Dを押下すると、EOTコードそのものが入力される。 端末ドライバがrawモードの場合、制御文字は端末ドライバでは解釈されなくなり、EOT文字がプログラムにそのまま送られる。プログラムはそれを自由に解釈できる。一般に、プログラムは、EOTバイトをテキストを終了するという指示として処理する。これは、DOSプログラムにおけるCtrl+Zの挙動と同様である。
※この「UNIXでの使用法」の解説は、「伝送終了文字」の解説の一部です。
「UNIXでの使用法」を含む「伝送終了文字」の記事については、「伝送終了文字」の概要を参照ください。
- UNIXでの使用法のページへのリンク