fly*_*bin 4 c c++ malloc mmap new-operator
我计划使用mmap()来分配一个接近特定地址的缓冲区.
我担心的是,使用mmap()分配的缓冲区将与malloc()或new运算符(C++)分配的其他缓冲区重叠.可能吗?
如果您MAP_FIXED要求mmap在特定地址创建映射,那么是的,您可能会覆盖现有映射,例如分配的空间malloc,共享库的代码或数据部分的一部分等.基本上使用它总是一个错误,MAP_FIXED除非你已经通过调用获得了地址范围mmap而没有指定MAP_FIXED(所以你知道它属于你); 在这种情况下,您可以使用有意覆盖部分映射MAP_FIXED.
所有其他答案似乎都错过了你说"接近特定地址"的事实,这对我来说意味着什么MAP_FIXED.如果您没有使用MAP_FIXED,请详细说明您如何获得"靠近特定地址"的映射.