Как дождаться окончания записи cpp fstream, прежде чем двигаться дальше?

У меня есть драйвер C ++, который содержит цикл do-while. Внутри этого цикла у меня есть данные, записанные на диск каждые столько итераций функцией-членом класса. Самое смешное, что функция, кажется, записывает почти все данные в n-й раз, когда она вызывается, а затем записывает остальные (n + 1) -й раз. Затем он приступает к записи некоторых (n + 1) -й данных и прекращает запись преждевременно и т. Д.

Извините за то, что я, возможно, говорю неточно, но я подозреваю, что файловый поток хранит данные и не имеет достаточно времени, чтобы завершить запись их на диск (каждый раз при вызове функции записывается много данных). Затем он записывает то, что осталось с момента его последнего использования, и пытается перейти к тому, что он должен был делать в данный момент.

Кто-нибудь сталкивался с подобной проблемой? Есть ли способ не дать программе двигаться дальше, пока fstream полностью не закончит запись?

2

Решение

Ты можешь позвонить fstream :: вровень () чтобы обеспечить синхронизацию потока с базовым устройством хранения.

2

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

Других решений пока нет …

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