我正在使用mmap構建malloc
的自定義實現。我如何獲得mmap分配的字節數?
如果用戶想要分配500字節的內存,我打電話mmap(0, 500, PROT_READ | PROT_WRITE, MAP_SHARED | MAP_ANONYMOUS, -1, 0)
。 mmap
返回一個指向大小爲4096的塊的指針(如果這是頁面大小)。
在我的鏈接列表中,我希望將一個塊設置爲標記爲500的字節,並將一個塊設置爲4096-500 = 3596個字節標記爲空閒。不清楚,但是多少內存mmap
真的分配。我怎樣才能得到這些信息?
我不認爲這是一個好方法。你應該分配大於4k的塊。否則,你將會得到很多大塊的東西。您還需要考慮'mmap'的開銷和映射區域的最大數量。 – 2014-12-02 21:46:53