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