17.2 内存映射文件的一致性--《Windows核心编程》

系统允许我们把同一个文件映射到多个视图中,只要映射的是同一个文件映射对象,系统会保证各视图中数据是一致的。例如一个程序修改了一个视图内的内容,那么系统会更新所有其他视图(对应同一文件映射对象)中的内容。

请注意,这仅针对同一文件映射对象。具体来说是,Windows 允许以同一个数据文件为后备存储器来创建多个文件映射对象。但并不保证这些不同的文件映射对象的各个视图是一致的。系统只保证在同一文件映射对象的多个视图间保持一致。

为了避免多个进程又对文件读写,最好在 CreateFile 时候传0给 ShareMode 参数,独占对文件的访问。

我们绝不应该用内存映射文件来跨网络共享可写文件,因为系统不能保证数据视图的一致性。如果一台机器更新了内容,那么另一台机器无法知道数据已经修改过,会继续使用内存中的原始数据。

posted @   人类观察者  阅读(43)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
· 使用C#创建一个MCP客户端
点击右上角即可分享
微信分享提示