mmap()
可以选择性地提供固定位置来放置 map 。我想映射一个文件,然后在每个程序的相同虚拟地址上将其提供给几个不同的程序。我不在乎地址是什么,只要他们都使用相同的地址即可。如果需要,地址可以由其中之一在运行时选择(并通过其他方式与其他人通信)。
Linux 是否保证我可以映射到未使用(由应用程序和内核)的内存区域?我怎样才能找到一个在多个正在运行的应用程序中可用的地址?
最佳答案
不是真的,不是。由于现代 Linux 系统上的地址空间随机化,因此很难保证可以使用或不可以使用哪些地址。
此外,如果您正在考虑使用 MAP_FIXED
,请注意您需要非常小心,因为它会导致 mmap 取消映射可能已经映射到该地址的任何内容,该地址通常是非常糟糕的事情。
我真的认为您需要为您的问题找到另一种解决方案...
关于c - 如何为 mmap 选择固定地址?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6446101/