1. ホーム
  2. c++

[解決済み] バッファのフラッシュとはどういう意味ですか?

2022-08-18 09:11:34

質問

C++を勉強しているのですが、理解できないことがあります。

出力バッファは、明示的にフラッシュすることで、強制的にバッファを書き込むことができます。 書き込むことができます。デフォルトでは、読み込み cin を読むと cout ; cout もフラッシュされます。 もフラッシュされます。

バッファをフラッシュする(たとえば出力バッファ):これは、バッファ内のすべてを削除することによってバッファをクリアするのでしょうか、それとも、バッファ内のすべてを出力することによってバッファをクリアするのでしょうか。または、バッファをフラッシュすることは、まったく異なることを意味するのでしょうか?

どのように解決するのですか?

ファイルへの書き込みを考えてみましょう。これは高価な操作です。コード内で一度に 1 バイトずつ書き込む場合、1 バイトの書き込みごとに非常に大きなコストがかかります。そこで、パフォーマンスを向上させる一般的な方法は、書き込むデータを一時的なバッファに格納することです。データが大量にあるときだけ、バッファからファイルに書き込むのです。書き込みを先延ばしにして、大きなブロックを一度に書き込むことで、パフォーマンスが向上するのです。

このように考えると、バッファのフラッシュとは、バッファからファイルへデータを転送する行為と言えます。

<ブロッククオート

これは、バッファの中のものをすべて削除してクリアするのでしょうか、それともバッファの中のものをすべて出力してクリアするのでしょうか。

後者です。