我想清除一些虛擬內存,因爲我需要從一個精靈文件加載段。清理部分虛擬內存?
(我正在編寫一個加載並執行ELF file的程序)。
據我瞭解我必須使用munmap
unsigned int blok = sectionHeads[i].adr - (sectionHeads[i].adr % getpagesize());
if (munmap((void *)blok,getpagesize()) == -1)
{
printf("fail\n");
}
else
{
printf("succ\n");
}
BLOK是,我想以釋放內存地址的倍數。 (或者我認爲,英語不是我的母語,所以很可能我誤解了「多重」的含義)。
我想釋放內存,因爲後來我需要這個空間。
當我運行它,它並沒有超越munmap();
我在做什麼錯?
我在munmap文檔中發現的唯一約束是地址參數必須是系統pagesize的倍數。
有沒有更簡單的方法來釋放這些內存?
注:項目要求是我釋放內存,如果它是需要的但它沒有說如何。
「munmap」的拼寫錯誤是怎麼回事? – Wug