【发布时间】:2016-06-25 10:13:24
【问题描述】:
什么是 Linux 或 POSIX 等效的 VirtualAlloc 和 MEM_TOP_DOWN,如果有的话?
【问题讨论】:
标签: c linux posix virtualalloc
什么是 Linux 或 POSIX 等效的 VirtualAlloc 和 MEM_TOP_DOWN,如果有的话?
【问题讨论】:
标签: c linux posix virtualalloc
对于mmap,POSIX 似乎没有任何东西。
The GNU C Library version of mmap (BSD libc also has these flags) 通过MAP_FIXED(在特定地址分配)和MAP_GROWSDOWN(名称相似但MEM_TOP_DOWN实际上与此选项无关)扩展了它的功能。 GNU 和 BSD 的联机帮助页都不鼓励使用这些函数,因为可移植性问题(您被绑定到特定的 C 库,不再完全独立于操作系统)。
您需要确定一种查找最高地址的方法。我建议尝试在顶部分配,并将传递的地址向下移动,直到它成功为止。步长和“搜索”算法将取决于您对精度和性能的需求。
【讨论】:
VirtualAlloc 一直都很慢。但这只是一种预感。