gpt4 book ai didi

c - mremap "initialize"内存是否增长?

转载 作者:IT王子 更新时间:2023-10-29 00:33:23 30 4
gpt4 key购买 nike

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

我已经尝试阅读 linux 源代码中的 mremap (mm/mremap.c) 代码,但它需要一些我目前不具备的特定领域知识 (vma_###东西)。甚至不确定那是正确的地方...

但是,根据我收集到的信息,我认为 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)

最佳答案

匿名页面是通用零页面的写时复制映射。它们一直是(在提供匿名映射的每个系统上,而不仅仅是 Linux)并且将永远是。当 mremap(或 brk)扩展匿名映射时,您会得到新的匿名(零)页面。无需自行初始化。

关于c - mremap "initialize"内存是否增长?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7978831/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com