我有一个程序。我希望它能够在不同的运行中映射特定的内存区域。
我只想拥有这个特定的内存区域,比如0xabcdabcd到0xdeadbeef,我将其映射到特定文件。无论如何要保证这个吗? (我必须以某种方式确保其他东西没有加载到这个特定区域。)
编辑:
我如何使确保在内存中没有其他任何内容?
答案 0 :(得分:7)
你需要做两件事:
对于起始地址,您需要确保它是页面大小的倍数。要获取页面大小,请使用调用sysconf(_SC_PAGESIZE)
(这是Linux上的相应调用,其他平台可能不同)。
答案 1 :(得分:1)
将地址传递到addr
中的地图。尝试在8KB边界上获取它。不过,你可以试试mlock()
。
答案 2 :(得分:0)
你不能确保没有别的东西占据记忆区域 - 先到先得。但是,由于你需要内存的一个特定部分,我猜你有一个非常专业的环境,所以你只需要确保你是第一个(使用启动脚本)