什么是fflush究竟是什么,它做什么?

时间:2014-05-22 22:47:16

标签: c++ fflush cstdio

我正在阅读http://www.cplusplus.com/reference/cstdio/fflush/,我很好奇这意味着什么。根据该网站说:

  

如果给定的流打开以进行写入(或者如果它打开以进行更新并且最后一次i / o操作是输出操作),则其输出缓冲区中的任何未写入数据都将写入该文件。

文件的输出缓冲区是什么意思?

2 个答案:

答案 0 :(得分:4)

某些流缓冲输出数据,不会立即写入设备。 fflush强制将流的缓冲区内容(如果有)写入设备并清除缓冲区。

答案 1 :(得分:1)

通常,当要将数据写入文件时,它将存储在称为“缓冲区”的构造中。一旦缓冲区达到某个阈值,缓冲区中存储的所有数据将立即写入文件。

Fflush清空缓冲区并强制将所有更改写入文件。这在写入文件时特别有用,因为最好在关闭文件之前刷新缓冲区(从而确保所有数据都已成功写入文件)。

这适用于其他类型的文件流。