Сбрасывание буферизированных системой данных ввода - вывода (I/O)  на диск


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

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

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

 

Назад в оглавление темы
На главную страницу темы

Hosted by uCoz