【问题标题】:msync guarantees on linuxlinux 上的 msync 保证
【发布时间】:2023-01-13 20:19:33
【问题描述】:

msync 是否保证将日期实际写入硬盘?我能 100% 确定如果操作系统在 msync 返回后立即崩溃,我不会丢失数据吗?

100% 确定我的意思是数据被物理写入磁盘,而不仅仅是硬盘驱动器缓冲区。简单地说,我想确保断电不会导致数据丢失。

【问题讨论】:

    标签: linux filesystems mmap


    【解决方案1】:

    如果操作系统在 msync 返回后崩溃,数据仍有可能丢失。这是因为数据可能仍存储在文件系统缓存中,尚未写入存储设备。为保证在操作系统崩溃时数据不丢失,您可以使用fsync系统调用将文件系统缓存与存储设备同步。为确保您应该使用磁盘日志文件系统,如 ext3、ext4、jfs、ntfs、reiserfs、xfs 等,以确保文件系统在崩溃或电源故障时保持一致。

    【讨论】:

    • 我一直认为 msyncfsync 做同样的事情,只是针对内存映射文件。你说不是这样?你有更多的支持信息吗?
    猜你喜欢
    • 2013-10-18
    • 1970-01-01
    • 2013-01-26
    • 2014-11-23
    • 2018-03-31
    • 2015-10-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多