如果我使用write()将一些数据写入磁盘上的文件,会发生什么。但是我的应用程序在冲洗之前崩溃了。如果没有系统故障,是否可以保证我的数据最终会被刷新到磁盘?
答案 0 :(得分:3)
如果您使用的是write
(而不是fwrite
或std::ostream::write
),
然后就没有进行缓冲。如果没有系统故障,
然后,数据将迟早(并且通常很快)成为
写入磁盘。
如果您真的担心数据完整性,您可以或在标志中
打开文件时,O_DSYNC
和O_SYNC
到标志。如果你这样做
这样,您可以保证数据物理写入磁盘
在从write
返回之前。