我调用了 mmap(),我尝试使用MAP_ANONYMOUS
如下方式映射 64MB:
void *block = mmap(0, 67108864, PROT_READ, MAP_PRIVATE | MAP_ANONYMOUS, -1, 0);
if (block == MAP_FAILED)
exit(1);
我知道要真正拥有内存,我需要点击那块内存。我想添加某种 0 或空字符串来实际拥有内存。我该怎么做?我尝试了以下方法,但这显然是段错误(我知道为什么会这样):
char *temp = block;
for (int i = 0; i < 67108864; i++) {
*temp = '0';
temp++;
}
我如何通过在该块中分配某些东西来实际获得该块的所有权?
谢谢!