Поделиться через


Очистка данных ввода-вывода System-Buffered на диск

Windows хранит данные в операциях чтения и записи файлов в системных буферах данных для оптимизации производительности диска. Когда приложение записывает данные в файл, система обычно регулярно буферизует данные и записывает их на диск. Приложение может заставить операционную систему записывать содержимое этих буферов данных на диск с помощью функции FlushFileBuffers . Кроме того, приложение может указать, что операции записи должны обходить буфер данных и выполнять запись непосредственно на диск, установив флаг FILE_FLAG_NO_BUFFERING при создании или открытии файла с помощью функции CreateFile .

Если при закрытии файла во внутреннем буфере есть данные, операционная система не записывает содержимое буфера на диск автоматически перед закрытием файла. Если приложение не заставляет операционную систему записывать буфер на диск перед закрытием файла, алгоритм кэширования определяет, когда буфер записывается.

Примечание

Доступ к буферу данных при использовании операции чтения или записи может привести к повреждению буфера. Приложения не должны считывать, записывать в, перераспределять или освобождать буфер данных, который используется операцией чтения или записи, до завершения операции.