ano*_*non 13 c++ flush buffering ofstream
我在MacOSX上.
在我的应用程序的记录器部分,我正在将数据转储到文件中.
假设我有一个全局声明 std::ofstream outFile("log");
在我的日志代码中我有:
outFile << "......." ;
outFile.flush();
Run Code Online (Sandbox Code Playgroud)
现在,假设我的代码在flush()发生后崩溃了; 是否保证写入磁盘outFile之前写入的东西flush()(请注意,我不会调用a close()).
谢谢!
作为替代方法,您可以完全禁用缓冲
outFile.rdbuf()->pubsetbuf(0, 0);
Run Code Online (Sandbox Code Playgroud)
写入无缓冲fstream可能会损害性能,但在测量之前担心这将是过早的优化.