我正在尝试在 X86_64 Linux 上做一些测试,我想知道如何 使 malloc() 在高于 4 GiB 的范围内分配返回地址
我是否必须使用单独的/自定义库覆盖 malloc 还是有其他简单的方法可以做到这一点?
谢谢。
----编辑----
我感兴趣的是作为值时的地址(uintptr_t
)
它的虚拟地址还是物理地址都没有关系,因为,所有
我想要的是地址必须是大于 4GiB 的值
我在 Linux x86_64 上使用 gcc
(4.2.1) 和 -m64
(希望我把问题说清楚了)
最佳答案
malloc()
是错误的工具。你想要 mmap()
/dev/zero
(这就是 malloc()
在现代 glibc
),IIRC。 (在 Unix 上。我相信 Win32 有类似的 API,但我不能告诉你它是什么。)
关于c - 如何在大于 4 GiB 的地址范围内 malloc,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5343722/