c - 什么是 Linux/POSIX 等同于带有 MEM_TOP_DOWN 的 VirtualAlloc?

标签 c linux posix virtualalloc

Linux 或 POSIX 中 VirtualAlloc 的等价物是什么?与 MEM_TOP_DOWN,如果有的话?

最佳答案

关于mmap,POSIX 似乎没有任何内容.

The GNU C Library version of mmap ( BSD libc also has these flags ) 通过 MAP_FIXED(在特定地址分配)和 MAP_GROWSDOWN(名称类似,但实际上是 MEM_TOP_DOWN)扩展了它的功能与此选项无关)。 GNU 和 BSD 的联机帮助页都不鼓励使用这些函数,因为存在可移植性问题(您绑定(bind)到特定的 C 库,不再完全独立于操作系统)。

您需要确定找到最顶层地址的方法。我建议尝试在顶部分配,并将传递的地址向下移动直到成功。步长和“搜索”算法将取决于您对精度和性能的需求。

关于c - 什么是 Linux/POSIX 等同于带有 MEM_TOP_DOWN 的 VirtualAlloc?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35918666/

相关文章:

linux - awk在for循环中制作多个文件以另一个文件的每一行命名

linux - 如何在 Linux 中更改每个用户的默认最大进程数

c - 保证每个线程的执行

c - 静态 C 库中的选择性变量定义

c++ - 如何使用 clang++ 在 LLVM 中编译 C++ 程序?

java - 如何将 Java 程序连接到 docker-compose

c++ - 选择/轮询循环中的回调和延迟

c++ - 进程共享 pthread_cond_t 在 gcc 8.4 中不起作用,但在 gcc 4.8.5 中起作用

c - 在 C 程序中执行自制的 shell 脚本

无法将 void * 转换为字节数组