【发布时间】:2011-04-01 01:57:33
【问题描述】:
我正在尝试找出如何在 Mac 上重新映射内存映射文件(当我想扩展可用空间时)。
我看到我们在 Linux 世界的朋友有 mremap,但我在我的 Mac 上的标题中找不到这样的功能。 /Developer/SDKs/MacOSX10.6.sdk/usr/include/sys/mman.h 有以下内容:
mmapmprotectmsyncmunlockmunmap- 但没有
mremap
man mremap 证实了我的恐惧。
如果我想调整映射文件的大小,我目前不得不munmap 和mmmap,这涉及使所有加载的页面无效。一定会有更好的办法。确定吗?
我正在尝试编写可在 Mac OS X 和 Linux 上运行的代码。如果我不得不,我可以选择一个宏来在每种情况下使用最好的功能,但我宁愿正确地做。
【问题讨论】:
标签: c macos mmap memory-mapped-files libc