gpt4 book ai didi

linux - Mac 上的 mmap 可以返回 null 吗?

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:06:08 24 4
gpt4 key购买 nike

Linux manpagePOSIX standard指定,只要未提供 MAP_FIXED 标志,mmap 就保证不会返回从地址 0 开始的内存。但是,Mac 中没有记录此类保证mmap 联机帮助页。

我不确定 Mac 对 POSIX 的遵守有多严格。它的 mmap 是否提供这种保证?

最佳答案

macOS 兼容 POSIX。事实上,它是 certified as officially UNIX-compliant ,这意味着符合 POSIX。

此外,从链接器的 macOS 手册页ld:

 -pagezero_size size
By default the linker creates an unreadable segment starting
at address zero named __PAGEZERO. Its existence will cause a
bus error if a NULL pointer is dereferenced. [...]
By default on 32-bit architectures the page zero size
is 4KB. On 64-bit architectures, the default size is 4GB.
[...]

因此,除非您做了一些非常不寻常的事情来禁用它,否则已经从地址 0 开始保留了一个或多个页面。因此,mmap() 不会在那里分配新页面。

关于linux - Mac 上的 mmap 可以返回 null 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46354422/

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