【发布时间】:2023-01-13 20:19:33
【问题描述】:
msync 是否保证将日期实际写入硬盘?我能 100% 确定如果操作系统在 msync 返回后立即崩溃,我不会丢失数据吗?
100% 确定我的意思是数据被物理写入磁盘,而不仅仅是硬盘驱动器缓冲区。简单地说,我想确保断电不会导致数据丢失。
【问题讨论】:
标签: linux filesystems mmap
msync 是否保证将日期实际写入硬盘?我能 100% 确定如果操作系统在 msync 返回后立即崩溃,我不会丢失数据吗?
100% 确定我的意思是数据被物理写入磁盘,而不仅仅是硬盘驱动器缓冲区。简单地说,我想确保断电不会导致数据丢失。
【问题讨论】:
标签: linux filesystems mmap
如果操作系统在 msync 返回后崩溃,数据仍有可能丢失。这是因为数据可能仍存储在文件系统缓存中,尚未写入存储设备。为保证在操作系统崩溃时数据不丢失,您可以使用fsync系统调用将文件系统缓存与存储设备同步。为确保您应该使用磁盘日志文件系统,如 ext3、ext4、jfs、ntfs、reiserfs、xfs 等,以确保文件系统在崩溃或电源故障时保持一致。
【讨论】:
msync 和 fsync 做同样的事情,只是针对内存映射文件。你说不是这样?你有更多的支持信息吗?