关闭fstream是否可以保证文件系统同步?

时间:2013-10-22 08:49:47

标签: c++ windows visual-c++ file-io language-lawyer

关闭fstream是否可以保证与文件系统的同步?我正在与同事讨论这个问题,需要明确的参考。我对标准所说的内容以及使用Visual Studio实现在Windows上发生的事情感兴趣。

另外,如果close并不意味着同步,是否有标准的C ++方法来确保同步完成?

1 个答案:

答案 0 :(得分:1)

我很确定已经解决了关闭文件流关闭缓冲区的问题。那么,现在,缓冲区:

draft of Std'1998:27.8.1.3.6:basic_filebuf * close();

  

6效果:如果is_open()== false,则返回空指针。如果存在放置区域,请调用溢出(EOF)以刷新字符。 (...)最后它关闭文件('''好像''通过调用std :: fclose(file))。308)如果任何对overflow或std :: fclose的调用失败然后关闭失败。

现在,请参阅overflow():27.8.1.4.8(...)

然后我试图进一步追踪它,某处有一些syncsputc的引用,但我无法追查overflow如何保证冲洗的确切措辞。肯定会,但对不起,我的时间到了今天:/

相关问题