2

POSIX では、テキスト ファイルを次のように定義しています。

1 行以上に編成された文字を含むファイル。

POSIXは行を次のように定義します。

0 個以上の非改行文字と終了改行文字のシーケンス。

これを考えるread()と、Linux キャラクター デバイス ドライバーの関数は、'\n'EOF に達したとき/データがなくなったときにユーザー バッファーに追加する必要がありますか?

4

2 に答える 2

1

char ドライバーの概念は、ストリームに似ています。この観点から、read次に利用可能になったものを返すだけです。現在利用可能なものは、通常、それがドライバーであるデバイスの定義の一部になります。デバイスが改行文字を返す場合、ドライバーもそうする必要があります。これは、デバイスが Linux だけでなく、すべてのプラットフォームで改行を返すことを意味することに注意してください。

一般に、 によって返されるバイトの解釈はread、より高いレベルの抽象化の問題です。ポリシーとメカニズムの観点から言えば、char ドライバーはメカニズムを提供するものと考えることができ、ポリシーは上位層に任せられます。

于 2016-10-19T10:09:50.730 に答える