POSIX では、テキスト ファイルを次のように定義しています。
1 行以上に編成された文字を含むファイル。
POSIXは行を次のように定義します。
0 個以上の非改行文字と終了改行文字のシーケンス。
これを考えるread()
と、Linux キャラクター デバイス ドライバーの関数は、'\n'
EOF に達したとき/データがなくなったときにユーザー バッファーに追加する必要がありますか?
char ドライバーの概念は、ストリームに似ています。この観点から、read
次に利用可能になったものを返すだけです。現在利用可能なものは、通常、それがドライバーであるデバイスの定義の一部になります。デバイスが改行文字を返す場合、ドライバーもそうする必要があります。これは、デバイスが Linux だけでなく、すべてのプラットフォームで改行を返すことを意味することに注意してください。
一般に、 によって返されるバイトの解釈はread
、より高いレベルの抽象化の問題です。ポリシーとメカニズムの観点から言えば、char ドライバーはメカニズムを提供するものと考えることができ、ポリシーは上位層に任せられます。