在Linux中,mremap函数用于重新映射使用mmap映射的内存。 请帮我澄清一下:
mremap试图增加分配的位置,但如果不能增加当前区域的大小,则会回到分配新的区域。
mremap()展开(或缩小)现有的内存映射,可能会同时移动它(由flags参数和可用虚拟地址空间控制)。 SRC
如果mremap失败,旧的内存就好了(就像realloc)。
如果mremap失败,没有任何东西需要通过映射(至少从这个调用中)。 见第1项。
如果mremap成功并且必须移动,那么旧的内存将被复制到新的内存中(旧的内存将会自动映射)。 如果mremap能够在原地增加大小,则内存不会移动,也不会创建新的分配。