[英]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.