-3

我正在阅读http://www.cplusplus.com/reference/cstdio/fflush/,我很好奇它的含义。根据该网站,它说:

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

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

4

2 回答 2

4

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

于 2014-05-22T22:53:02.723 回答
2

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

Fflush 清空缓冲区并强制将所有更改写入文件。当您完成对文件的写入时,这特别有用,因为在关闭文件之前刷新缓冲区是一种很好的做法(从而确保所有数据都已成功写入文件)。

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

于 2014-05-22T22:53:31.807 回答