是否mremap“增长初始化”内存?

如果我mmap ()一些私人匿名页面,然后用mremap ()扩展它们,新的空间是否也被初始化为零?

我试过在linux源代码中读取mremap( mm / mremap.c )的代码,但它需要一些我目前没有的领域特定的知识(vma _ ### stuff)。 甚至不知道这是正确的地方看…

但是,从我所收集到的,我认为 mremap ()ed内存将被清除,这是正确的吗?

分配是这样完成的

list = mmap(NULL, newSize, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANONYMOUS, -1, 0) 

然后重映像就这样完成了

 newList = mremap(list, oldSize, newSize, MREMAP_MAYMOVE) 

最后,这是一个特定于Linux的问题,运行最近的内核(> = 2.6.28)和libc(> = 2.11.1)

Solutions Collecting From Web of "是否mremap“增长初始化”内存?"

匿名页面是通用零页面的写入时复制映射。 他们总是(在每个系统上,不仅仅是Linux,提供匿名映射),而且总会是这样。 当mremap (或brk )扩展一个匿名映射时,会得到新的匿名(零)页面。 没有必要自己初始化它们。