回答:
はい。それは^D本当にそうしなければなりません:現在のread(2)呼び出しを停止するだけです。
プログラムがint rdbytes = read(fd, buffer, sizeof buffer);実行し、^Dその間を押すread()と、バッファーに現在読み込まれているバイトで戻り、その数を返します。回線終端でも同じことが起こります。\n最後には常に配信されます。
その^Dため、行の先頭または次の後にあるだけ^Dが、EOFを通知するread()returnの望ましい効果を持っています0。
read()return を持ち0、EOFを示します。
\n..の有無にかかわらず、^D連続して2回押すだけで、最終的な改行文字を生成せずにEOF状態を引き起こすことが可能です(Enterキーを押す前にEnterキーを押すの^Dと同じ))。