Как убедиться, что данные записываются на жесткий диск (не буферизируются) в файле IO (WriteFile ())

Во время длительной и, возможно, напряженной работы системы я время от времени обновляю файл с помощью дескриптора файла и WriteFile

Я заметил, что когда я щелкаю правой кнопкой мыши файл и спрашиваю его свойства в Windows, я не вижу, что он вообще обновился. Измененное время / данные не отражают фактическое обновление, которое я сделал.

Я понимаю, что Windows может буферизовать содержимое в памяти, пока дескриптор файла не будет закрыт. Вся идея состоит в том, чтобы обновить файл, чтобы при сбое системы мы, по крайней мере, знали, куда мы попали (вроде).

Как сделать так, чтобы содержимое сбрасывалось, не закрывая дескриптор файла?

0

Решение

Я рекомендую либо попробовать очистка буфера или проверить, WriteFile возвращается ИСТИНА. Если это не так, возможно, что-то не так, например, отказано в разрешении или что-то в этом роде. Ты можешь использовать GetLastError для этого.

1

Другие решения


По вопросам рекламы [email protected]