【发布时间】:2017-08-09 10:34:17
【问题描述】:
最近,我正在测试 ext4 文件系统的正确用法。我的专家是:
当系统崩溃时,数据已经被write return ok不会丢失,但是metadate可以。
这是我的用法:
1. 调用 fallocate 分配一个空间
fallocate(fd, 0, 0, 4*1024*1024); //4MB
2. 调用 fsync(fd) 让数据和元数据写入磁盘
3.然后我调用函数随机写入4k大小的文件(随机数据但不是0)。带有 O_DRICT 标志,但不调用 fsync。我用 return write ok 记录偏移量。
4.检查记录的偏移量。但我发现在一些偏移量中,读取 4k 数据是 0。这似乎意味着偏移量不像孔文件那样使用。
我的问题是:
Thanks.
【问题讨论】: