0

我使用mmap将文件 F 映射到块 B,然后只写入 B 的一个字节。如果我使用 MS_SYNC 为 B 调用 msync(),操作系统是否将所有块写入 F?还是只将修改后的一个字节写入F?

4

2 回答 2

1

这是特定于操作系统和体系结构的,但很可能只有脏会被写入磁盘。

于 2013-04-06T15:58:18.170 回答
0

您的特定系统上的手册页是怎么说的?如果它不是开源的,那就是最好的选择,除非您可以找到适用于您的 UNIX 平台的更详细的文档。

在至少一个系统上, man msync 说:

msync() 系统调用将修改后的整个页面写回文件系统并更新文件修改时间。只有那些包含 addr 和 len-1 后续位置的页面才会被检查。

于 2013-04-06T17:14:05.683 回答