在关闭之前实时写入文件

时间:2018-02-04 11:09:28

标签: c++ caffe

我将Solver()函数(caffe第三个库中的函数)发出的输出结果写在带有以下命令的文件中:

if(std::freopen("redir.txt", "w", stdout)) {
    std::printf("stdout is redirected to a file\n"); // this is written to redir.txt
    solver->Solve();
    std::fclose(stdout);
}

但由于Solve()函数会连续发​​出输出,但redir.txt在执行std::fclose(stdout);之前不会更新。所以我无法实时查看结果。

如何实时更新我的​​文件?

2 个答案:

答案 0 :(得分:4)

定期使用std::flush将写入(缓冲)的数据刷新到文件中。

不要经常flush或影响性能。

答案 1 :(得分:-2)

通常std::flush可能有用。