Вызовите ostream :: flush для выходного потока, в котором вы создали свой объект архива:
// create and open a character archive for output
std::ofstream ofs("filename");
boost::archive::text_oarchive oa(ofs);
...
ofs.flush();
Вы также можете просто позволить объектам выходить из области видимости, что должно сбрасывать все:
{
// create and open a character archive for output
std::ofstream ofs("filename");
boost::archive::text_oarchive oa(ofs);
// going out of scope flushes the data
}
Обратите внимание, что вам все равно нужно правильно отключить USB-устройство. Сброс данных просто гарантирует, что они попадают из ядра пользователя в ядро, но ядро также может выполнять свою собственную буферизацию.