我對specification of mmap感到困惑。mmap的對齊和粒度
讓pa
是MMAP(同說明書)
PA = MMAP(ADDR,LEN,PROT,旗幟,法爾茲,關閉)的返回地址;
在成功以下範圍我的函數調用後認爲是有效的
[PA,PA + LEN)
我的問題是以下的範圍是否仍然有效?
[ROUND_DOWN(PA,頁大小),ROUND_UP(PA + LEN,頁大小))
[鹼,鹼+尺寸]用於短
也就是說:
- 是
base
總是對齊頁面邊界? - 是
size
始終是頁面大小的倍數(換句話說粒度是頁面大小)?
感謝您的幫助。
我認爲是在本段中暗示:
的關閉參數被約束爲根據當傳遞_SC_PAGESIZE或_SC_PAGE_SIZE通過sysconf()返回的值被對準和尺寸。當指定MAP_FIXED時,應用程序應確保參數addr也符合這些約束條件。 該實現在整個頁面上執行映射操作。因此,當參數len不需要滿足大小或對齊約束時,實現應該在任何映射操作中包括由範圍[pa,pa + len)指定的任何局部頁面。
但我不確定,我在POSIX上沒有太多經驗。
- 請給我多些明確多明確證據
- 或者告訴我至少一個支持POSIX和具有不同的行爲
感謝agian系統。