相关疑难解决方法(0)

内存映射文件和单个块的原子写入

如果我使用普通IO API读取和写入单个文件,则保证写入是基于每个块的原子.也就是说,如果我的write只修改了一个块,那么操作系统会保证写入整个块,或者根本不写入.

如何在内存映射文件上实现相同的效果?

内存映射文件只是字节数组,所以如果我修改字节数组,操作系统无法知道何时我认为写"完成",所以它可能(即使不太可能)在内存中交换内存我的块写操作的中间,实际上我写了半个块.

我需要某种形式的"进入/离开临界区",或"钉住"文件的页面到内存中,而我写它的一些方法.这样的事情存在吗?如果是这样,那可移植到常见的POSIX系统和Windows吗?

mmap acid atomic fwrite

13
推荐指数
1
解决办法
3168
查看次数

标签 统计

acid ×1

atomic ×1

fwrite ×1

mmap ×1