【发布时间】:2017-10-11 18:09:53
【问题描述】:
mmap() 在调用进程的虚拟地址空间中创建一个新映射,从addr 和len 字节开始,munmap() 删除包含进程地址空间任何部分的整个页面的任何映射从addr 开始并继续len 字节。
我想问一下修改过的mmap文件是在释放内存之前被munmap写入磁盘还是我们必须调用不同的函数来同步修改。
【问题讨论】:
-
在什么操作系统上?你将什么标志传递给
mmap? “mmap 文件”和“munmap 文件”是什么意思? -
Unix 操作系统。 mmap 文件是指写入映射内存的数据。如果数据被加载到内存映射中,然后对其进行一些修改。提供的参数是 mmap(NULL, size, readOnly ? PROT_READ : PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0)。
-
你的问题的问题是 mmap 是一个万能的功能。行为取决于你实际上是如何做到的。您应该更具体地说明您在通话中使用的设置。
标签: unix memory-management shared-memory virtual-memory