web-dev-qa-db-ja.com

「ストリームをフラッシュする」とはどういう意味ですか?

'endl'は新しい行を挿入してストリームをフラッシュするため、c ++の新しい行では '\ n'が 'endl'よりも優先されると読みました。ストリームをフラッシュしているものを教えてください。

11
Anshuman Singh

ストリームをフラッシュすると、そのストリームに書き込まれたすべてのデータが出力されます。これには、バッファリングされている可能性のあるデータのクリアも含まれます。

一部のストリームは、パフォーマンス向上のためにバッファリングされます。ディスクに書き込むストリームは、コンテンツがブロックサイズに達するまでバッファリングする場合があります。

10
hardillb

ストリームをフラッシュすると、出力ストリームのコンテンツがOSが使用するデフォルトの出力メディアに強制されます。ストリームという用語は、不明なバイト数を送受信できるようにする構造の抽象化です。プログラムの特定のポイントでは、出力ストリームが自動的にフラッシュされます。フラッシュは必ずしも必要ではありません。オーバーヘッドを減らしてパフォーマンスを向上させるために、ストリームはそのコンテンツをバッファリングし、定期的にのみ「フラッシュ」します。ストリームの例は、入力ストリームと出力ストリームであるcin(std :: cin)とcout(std :: cout)です。 「std :: cin」には入力データを格納するためのバッファーがあり、「std :: cout's」バッファーは画面に送信されるデータを格納するために使用されます。

4
XZ6H