Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
如果我使用 write() 将一些数据写入磁盘上的文件会发生什么。但是我的应用程序在刷新之前崩溃了。如果没有系统故障,是否可以保证我的数据最终会刷新到磁盘?
如果您正在使用write(而不是fwriteor std::ostream::write),则没有进程缓冲。如果没有系统故障,那么数据迟早会(通常很快)写入磁盘。
write
fwrite
std::ostream::write
如果你真的很关心数据的完整性,你可以在打开文件时或在flags O_DSYNC和O_SYNCflags中打开文件。如果这样做,则可以保证在从write.
O_DSYNC
O_SYNC