关闭前实时写入文件
Writing to file in real time before closing it
我将 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);
才会更新。所以我不能实时看到结果。
如何实时更新我的文件?
定期使用std::flush将写入(缓冲)的数据刷新到文件。
不过不要 flush
太频繁,否则性能会受到影响。
通常 std::flush
也许可行。
我将 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);
才会更新。所以我不能实时看到结果。
如何实时更新我的文件?
定期使用std::flush将写入(缓冲)的数据刷新到文件。
不过不要 flush
太频繁,否则性能会受到影响。
通常 std::flush
也许可行。