我知道内核函数open()
以及它们mmap()
的msync()
作用。但无论我尝试使用哪种标志组合,内核要么仍然使用自己的一些时间间隔刷新更新,要么根本不会刷新(如果我将其映射为MAP_PRIVATE
)。我希望我错了。有没有办法完全控制何时发生冲水和不发生冲水?我想映射一个文件,进行一些更改,然后仅有的当我决定冲洗它时而不是更早!是否可以?
答案1
这是我回答我自己的问题的想法。我可以使用mmap
using标志映射文件MAP_PRIVATE
,然后仅当我想将其写入硬盘时,MAP_SHARED
使用 再次映射它并复制内容memcpy
吗?您认为这在效率方面如何?