6

如果我使用 write() 将一些数据写入磁盘上的文件会发生什么。但是我的应用程序在刷新之前崩溃了。如果没有系统故障,是否可以保证我的数据最终会刷新到磁盘?

4

1 回答 1

5

如果您正在使用write(而不是fwriteor std::ostream::write),则没有进程缓冲。如果没有系统故障,那么数据迟早会(通常很快)写入磁盘。

如果你真的很关心数据的完整性,你可以在打开文件时或在flags O_DSYNCO_SYNCflags中打开文件。如果这样做,则可以保证在从write.

于 2012-05-22T11:44:05.883 回答