将 I/O 数据刷新到磁盘System-Buffered

Windows 将数据存储在系统维护的数据缓冲区中的文件读取和写入操作中,以优化磁盘性能。 当应用程序写入文件时,系统通常会缓冲数据,并定期将数据写入磁盘。 应用程序可以使用 FlushFileBuffers 函数强制操作系统将这些数据缓冲区的内容写入磁盘。 或者,当使用 CreateFile 函数创建或打开文件时,应用程序可以指定写入操作绕过数据缓冲区,并通过设置 FILE_FLAG_NO_BUFFERING 标志直接写入磁盘。

如果文件关闭时内部缓冲区中有数据,则操作系统在关闭文件之前不会自动将缓冲区的内容写入磁盘。 如果应用程序在关闭文件之前不强制操作系统将缓冲区写入磁盘,则缓存算法将确定何时写入缓冲区。

注意

在读取或写入操作使用数据缓冲区时访问数据缓冲区可能会损坏该缓冲区。 在操作完成之前,应用程序不得读取、写入、重新分配或释放读取或写入操作正在使用的数据缓冲区。