3

バッファなし I/O と標準 I/O の違いは何ですか? read()、write()、close() の使用はバッファリングされていない IO であることを知っています。Printf と get はバッファリングされた IO です。また、大きなトランザクションにはバッファリングされた IO を使用する方がよいことも知っています。理由が分からないだけです。そして、この文脈で「バッファリング」という用語は何を意味するのでしょうか?

4

1 に答える 1

7

バッファなしI/Oは、読み取りまたは書き込み中にバッファを使用しないことを意味します。一般に、read()やwrite()などのシステムコールを使用すると、charごとに読み取りと書き込みが行われるため、パフォーマンスが大幅に低下する可能性があります。したがって、巨大な日付の場合、一般に高レベルの読み取り/書き込みまたは単にバッファリングされたI / Oが推奨されます。バッファリングは、単一の文字ではなく文字のブロックを処理することを意味します。そのため、ブロックI/Oとも呼ばれます。 Unixでは、高レベルの読み取り/書き込み関数を使用すると、特定のブロックサイズのデータ​​をフェッチ/保存してバッファキャッシュに配置し、このバッファキャッシュからこれらのI/O関数が必要な量のデータを取得します。

于 2011-12-07T12:57:56.297 に答える