[英]How do I mmap a _particular_ region in memory?
我有一個程序。 我希望它能夠通過不同的運行來映射內存的特定區域。
我只想擁有這個特定的內存區域,比如說我映射到特定文件的0xabcdabcd到0xdeadbeef。 反正有保證嗎? (我必須以某種方式確保沒有將其他內容加載到該特定區域中)。
編輯:
如何確保沒有其他需要該特定區域的內存?
您需要做兩件事:
對於起始地址,您需要確保它是頁面大小的倍數。 要獲取頁面大小,請使用調用sysconf(_SC_PAGESIZE)
(在Linux上是適當的調用,其他平台可能有所不同)。
將地址傳遞給addr
map。 嘗試在8KB的邊界上獲取它。 您可以嘗試使用mlock()
代替。
您無法確保沒有其他東西占用該內存區域-先到先得。 但是,由於您需要內存的特定部分,所以我猜您有一個非常專業的環境,因此您只需要確保自己是第一名(使用開始腳本)即可。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.