使用mmap预留空间,以及稍后的地图文件?

时间:2016-11-07 19:26:30

标签: c linux posix mmap

我如何将文件映射到保留的内存空间?在我的计划中,我想:

  • 使用size_t size处的mmap保留addr字节而不进行文件映射
  • 在特定呼叫时,将fd映射到保留映射中的某个偏移量

我在想这可以通过munmap预留空间的一个区域来映射文件来完成,但是有更简单的方法吗?

这里有一些代码来表示我正在做的事情:

void* reserve(void* addr_hint, size_t map_size) {
    // stuff
    return (void *) mmap(addr_hint, page_multiple, PROT_NONE, map_flags, NULL, 0);
}

void* map(void* addr, int fd, size_t offset, size_t size) {
    // addr has already been reserved in the reserve function above
    // How do I proceed to mmap the file in a previously reserved memory space?
}

0 个答案:

没有答案