Доброе время суток,
Такой вопрос: если я пишу в файл, открытый с FILE_FLAG_WRITE_THROUGH, гарантируется ли что после возврата из WriteFile данные целиком сохранены на диск?
--
Sergey Chadov
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Здравствуйте, vvotan, Вы писали:
V>Доброе время суток,
V>Такой вопрос: если я пишу в файл, открытый с FILE_FLAG_WRITE_THROUGH, гарантируется ли что после возврата из WriteFile данные целиком сохранены на диск?
Можете посмотреть здесь
http://support.microsoft.com/default.aspx?scid=kb;en-us;99794
Этот флаг заставляет писать прямо в файл, минуя буфер. Но данные остаются в дисковом кэше. Чтобы гарантированно писать на диск минуя буфер и кэш, можно использовать FILE_FLAG_WRITE_THROUGH|FILE_FLAG_NO_BUFFERING.
Здравствуйте, <Аноним>, Вы писали:
V>>Такой вопрос: если я пишу в файл, открытый с FILE_FLAG_WRITE_THROUGH, гарантируется ли что после возврата из WriteFile данные целиком сохранены на диск?
А>Можете посмотреть здесь http://support.microsoft.com/default.aspx?scid=kb;en-us;99794
The write call doesn't return until the data is written to the file
Спасибо, именно это я и хотел узнать.
А>Этот флаг заставляет писать прямо в файл, минуя буфер. Но данные остаются в дисковом кэше. Чтобы гарантированно писать на диск минуя буфер и кэш, можно использовать FILE_FLAG_WRITE_THROUGH|FILE_FLAG_NO_BUFFERING.
Я знаю, но это накладывает серьезные ограничения как на позицию в которую можно писать, так и на размер. Этого я хотел бы избежать. К тому же буферизация мне совсем не лишняя, при условии что я при форс-мажорном обстоятельстве не потеряю данные, якобы уже записанные в файл.
--
Sergey Chadov
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>