При записи в файл в Windows 7, Windows будет кэшировать записи по умолчанию.После завершения записи Windows сохраняет порядок записи или запись может происходить не по порядку?
У меня есть приложение, которое непрерывно записывает в двоичный файл.Каждые 20 секунд он записывает блок данных, обновляет оглавление файла и вызывает _commit()
для сброса данных на диск.
Мне интересно, нужно ли вызывать коммит или мы можем полагаться на Windows 7 для правильной передачи данных на диск.
Если компьютер выйдет из строя, я не слишком беспокоюсь о потере данных за последние 20 секунд, но я обеспокоен тем, чтобы сделать файл недействительным.Если оглавление файла обновлено, но данные отсутствуют, файл не будет корректным.Если данные обновляются, а оглавление - нет, то в конце файла будут дополнительные данные, но, поскольку на них нет ссылок в оглавлении, они игнорируются при чтении файла, и мы имеемправильный файл.