Ale*_*nov 5 c memory-management
平台:Mac OS X Lang:Obj-C/C.
有可能以某种方式让'malloc'在进程地址空间的前4GB内分配内存吗?
我正在模拟i386堆栈,需要保证地址位于允许的32位范围内.
使用mmap + MAP_FIXED需要在任何'malloc'之前保留内存,这不太方便.带有约束的'malloc'会更方便.
Bas*_*tch 6
这是不可能的,除非您编写自己的实现malloc(或深入了解一些现有的实现细节,malloc然后根据您的需要进行更改).
malloc
大多数malloc-s实现使用系统mmap(或sbrk)系统调用(参见Linux上的syscalls(2)和MacOSX的内存(3)),这些实现了一些任意的内存地址(例如,因为ASLR非常有用) .
mmap
sbrk
PS.在Linux上,你可以使用的mmap(2)用MAP_NORESERVE或MAP_32BIT,但MacOSX的MMAP(2)似乎并没有让他们.
MAP_NORESERVE
MAP_32BIT
归档时间:
10 年,11 月 前
查看次数:
404 次
最近记录: