相关疑难解决方法(0)

为什么mmap无法分配内存?

我用root权限运行程序,但它一直在抱怨mmap无法分配内存.代码段如下:

#define PROTECTION (PROT_READ | PROT_WRITE)
#define LENGTH (4*1024)

#ifndef MAP_HUGETLB
#define MAP_HUGETLB 0x40000
#endif

#define ADDR (void *) (0x0UL)
#define FLAGS (MAP_PRIVATE | MAP_ANONYMOUS | MAP_HUGETLB)

int main (int argc, char *argv[]){
...
  // allocate a buffer with the same size as the LLC using huge pages
  buf = mmap(ADDR, LENGTH, PROTECTION, FLAGS, 0, 0);
  if (buf == MAP_FAILED) {
    perror("mmap");
    exit(1);
  }
...}
Run Code Online (Sandbox Code Playgroud)

硬件:我有8G内存.处理器是ivybridge

Uname输出:

Linux mymachine 3.13.0-43-generic #72-Ubuntu SMP Mon Dec 8 19:35:06 UTC 2014 x86_64 x86_64 …
Run Code Online (Sandbox Code Playgroud)

c mmap

8
推荐指数
2
解决办法
2万
查看次数

标签 统计

c ×1

mmap ×1