ofstream сбрасывает файл на диск до истечения времени ожидания сторожевого таймера

Я пишу в файл каждую секунду, используя ofstream. Однако есть вероятность, что сторожевой таймер может сработать, что приведет к перезагрузке всей моей системы. Когда это происходит, я теряю все свои данные, которые я записал в файл. Я пробовал std:flush, отключая буферы с помощью myfile.rdbuf()->pubsetbuf(0,0) и пробовал myfile.flush() перед myfile.close(). Кажется, ничего не работает. Какие-либо предложения? Это на С++.


person user2494298    schedule 16.10.2013    source источник


Ответы (1)


Кажется, невозможно использовать что-то конкретное с ofstream. Итак, что я сделал, так это вызвал fsync() для файла после его закрытия, и это решило проблему.

person user2494298    schedule 16.10.2013