回答:
はい。それは^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
と同じ))。