Linux a';复印件';在内存映射文件上触发刷新到磁盘?

Linux a';复印件';在内存映射文件上触发刷新到磁盘?,linux,windows,memory-mapped-files,Linux,Windows,Memory Mapped Files,我在Java程序中打开了一个内存映射文件,我不断地向其中写入新数据 通常,操作系统负责将内容刷新到磁盘 如果出于某种原因,其他进程希望将文件复制到另一个位置(可能执行rsync),那么我是否获得该文件的最新内容(即内存映射中当时存在的内容?) 通常,我觉得如果触发了进程内存映射的文件上的复制,这两种情况都应该发生 文件的内容应该刷新到磁盘,以便其他进程可以看到文件的最新内容 当触发复制时,通常会将其复制到内存(当我们执行类似rsync的操作时),然后内容将从内存写入目标文件。因此,如果要从内存中

我在Java程序中打开了一个内存映射文件,我不断地向其中写入新数据

通常,操作系统负责将内容刷新到磁盘

如果出于某种原因,其他进程希望将文件复制到另一个位置(可能执行
rsync
),那么我是否获得该文件的最新内容(即内存映射中当时存在的内容?)

通常,我觉得如果触发了进程内存映射的文件上的复制,这两种情况都应该发生

  • 文件的内容应该刷新到磁盘,以便其他进程可以看到文件的最新内容
  • 当触发复制时,通常会将其复制到内存(当我们执行类似rsync的操作时),然后内容将从内存写入目标文件。因此,如果要从内存中复制这些页面,则文件的页面已经在内存中,因为另一个进程正在使用它(内存映射),因此将访问此页面,而无需刷新到磁盘
  • 到底发生了什么?是不是除了上面提到的以外? Windows和Linux的行为是否相同