Linux kernel 如何读取mmap的返回值
我不熟悉这个话题,我已经复习了3页。如何阅读每一篇文章的内容?我知道我必须使用PAGE_SHIFT,但我不知道如何使用Linux kernel 如何读取mmap的返回值,linux-kernel,mmap,memory-address,Linux Kernel,Mmap,Memory Address,我不熟悉这个话题,我已经复习了3页。如何阅读每一篇文章的内容?我知道我必须使用PAGE_SHIFT,但我不知道如何使用 unsigned int* address = mmap(...) 一些事情,比如跟随 #define PAGE_SIZE 4096 unsigned int * address = mmap(...) unsigned int * page0 = &address[ 0 * PAGE_SIZE / sizeof(int) ]; unsigned int * pa
unsigned int* address = mmap(...)
一些事情,比如跟随
#define PAGE_SIZE 4096
unsigned int * address = mmap(...)
unsigned int * page0 = &address[ 0 * PAGE_SIZE / sizeof(int) ];
unsigned int * page1 = &address[ 1 * PAGE_SIZE / sizeof(int) ];
unsigned int * page2 = &address[ 2 * PAGE_SIZE / sizeof(int) ];
unsigned int i=address[0]
--有什么问题吗?。如何获取第二页的起始地址?这取决于您使用的体系结构。至于x86
,页面大小为4096。因此,该页面包含page\u SIZE/sizeof(int)
项目和page0
指的是地址[0]
,page1
指的是地址[1024]
和page2
指的是地址[2048]
。谢谢你能解释一下吗?page\u SIZE/sizeof(int)
为您提供每页的int
项目数量。因此,每个页面的第一个(零索引)项都有类似于&address[N*items\u per\u page]
的地址,其中N
是页面索引。