在Windows平台上是否有内存映射api,就像linux上的mmap()一样?

时间:2010-11-03 13:02:40

标签: memory mmap

是否有api进行内存映射,就像

一样
mmap()
在Linux上

2 个答案:

答案 0 :(得分:13)

File mapping

  

文件映射是文件内容与进程虚拟地址空间的一部分的关联。系统会创建文件映射对象(也称为节对象)以维持此关联。 文件视图是进程用于访问文件内容的虚拟地址空间的一部分。文件映射允许进程使用随机输入和输出(I / O)和顺序I / O.它还允许进程有效地使用大型数据文件(如数据库),而无需将整个文件映射到内存中。多个进程也可以使用内存映射文件来共享数据。

     

使用指针读取和写入文件视图的进程,就像使用动态分配的内存一样。使用文件映射可提高效率,因为文件驻留在磁盘上,但文件视图驻留在内存中。进程还可以使用VirtualProtect函数操作文件视图。

答案 1 :(得分:13)

取决于您想要使用它的确切内容。如果要将现有文件映射到内存,memory-mapped files支持该文件。它们还可用于在进程之间共享内存(使用没有底层文件的命名映射对象)。 如果你想映射物理内存,虽然有一些技巧,但通常不支持用户模式。