gpt4 book ai didi

c - 再次使用 mmap() ,重新使用以前的 mmap() 结果失败 - 使原始 ptr 无效?

转载 作者:行者123 更新时间:2023-11-30 14:59:43 29 4
gpt4 key购买 nike

当我调用mmap时:

  ptr = mmap(NULL, ...);

并要求系统提供一个缓冲区并将文件映射到其中,然后使用

再次调用 mmap
  ptr2 = mmap(ptr, ...);

尝试重新使用原始缓冲区。

如果第二次调用失败(无论出于何种原因),这是否会导致第一次 mmap(NULL, ...) 调用中我的 ptr 失效?

或者我仍然可以使用该内存吗?

最佳答案

mmap 不会将文件映射到缓冲区,而是将进程中的地址空间替换为从磁盘上的文件中完成并退出的页面。 mmap 对地址空间的使用不记得以前的使用,因此第二个重叠的 mmap 通常会破坏第一个提供的映射。当然,您之后可以通过映射原始空间来恢复它们。 (如果重叠位于末尾,则具有相同地址空间的偏移量)。

关于c - 再次使用 mmap() ,重新使用以前的 mmap() 结果失败 - 使原始 ptr 无效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42585366/

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