gpt4 book ai didi

c - 在c中映射多个匿名页面

转载 作者:行者123 更新时间:2023-11-30 15:15:27 25 4
gpt4 key购买 nike

我在内存中映射了两个匿名页面,然后访问第二个页面,如下所示:

    int* map = mmap(NULL, 8 * 1024, PROT_READ, PROT_WRITE, MAP_SHARED |
MAP_ANONYMOUS, -1, 0);
int a = map[4096];

其中页面大小为 4096(我验证了这一点),但这会抛出 SIGSEGV。我尝试使用 madvise(map, 8 * 1024, MADV_WILLNEED) 并在 mmap 中使用 MAP_POPULATE 标志,但这些没有帮助。我该怎么做才能使这项工作成功?

最佳答案

问题是我将 map 声明为 int*,因此引用 map[4096] 查找位置 处的值map + 4 * 4096,假设int是4个字节长,这显然超出了我用mmap保留的范围。

关于c - 在c中映射多个匿名页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33620545/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com