对于Windows,我认为脏页最终会写入磁盘是毫无疑问的。据明确记录,取消映射文件视图不会刷新数据,但数据将像任何缓存一样延迟写入磁盘。FlushViewOfFile 强制立即写入,但调用它是可选的。
存在一些可能相关或许多不相关的例外情况。即使一个程序异常终止,文件的两个映射视图也能保证保持一致,但这种一致性不会扩展到远程文件或使用 ReadFile/WriteFile 同时访问的文件。
该文档没有提供明确的答案,但也没有给出任何暗示相反的情况可能是正确的。我会依赖,需要经过测试。
正如链接中指出的,如果存在机器故障的风险,那么确保页面在写入时刷新可能是个好主意。内核刷新缓存可能会延迟很长一段时间。