我看了一个 linux 的测试用例。它测试mmap
如下:
#define HIGH_ADDR (void *)(0x1000000000000)
addr = mmap(HIGH_ADDR, map_sz, PROT_READ,
MAP_SHARED | MAP_FIXED, fildes, 0);
在PPC64下的这种情况下,预期结果是得到一个 errno ENOMEM
。
但是PPC64下的实际结果是得到一个 errno 。
无论如何,它在X86_64 arch上运行良好。我想也许 PPC64 没有分配足够的内存。因此,我尝试将's 定义修改为:
但它仍然得到.
我只是想知道,PPC64 的 linux 如何管理他的内存。我的意思是,我想知道用户空间程序的内存地理。或者我应该使用什么 MAX 地址。Invalid argument
HIGH_ADDR
#define HIGH_ADDR (void *)(0x7FFFFFFFFFF)
Invalid argument