我是這個主題的新手,我已經mmaped 3頁。我怎樣才能讀取每個的內容?我知道我必須使用PAGE_SHIFT,但我不知道如何。如何讀取mmap的返回值
unsigned int* address = mmap(...)
我是這個主題的新手,我已經mmaped 3頁。我怎樣才能讀取每個的內容?我知道我必須使用PAGE_SHIFT,但我不知道如何。如何讀取mmap的返回值
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) ];
謝謝,你能解釋一下嗎? – Sara
'PAGE_SIZE/sizeof(int)'可以爲你提供每頁「int」項的數量。因此,每個頁面的第一個(零索引)項目的地址就像'&address [N * items_per_page]',其中'N'是頁面索引。 –
'unsigned int類型I =地址[0]' - 什麼是.. –
我怎麼能得到第二頁起始地址的問題? – Sara
這取決於你用過的架構。至於'x86','PAGE_SIZE'是4096.所以頁面包含'PAGE_SIZE/sizeof(int)'項目,'page0'指向'&address [0]','page1'指向&address [1024] 'page2'是指'&address [2048]'。 –