Linux manpage和POSIX standard都指定了,只要MAP_FIXED
标志未提供,mmap
就会保证不会返回内存地址为0.但是,Mac mmap
联机帮助页中没有记录此类保证。
我不确定Mac对POSIX的遵守程度有多严格。它的mmap
是否提供此保证?
答案 0 :(得分:2)
macOS符合POSIX标准。事实上,它是certified as officially UNIX-compliant,这意味着POSIX合规。
此外,从macOS的链接器手册页tf.summary.image('input', image_batch, 10)
:
ld
因此,除非你做了一些非常不寻常的事情来禁用它,否则从地址0开始已经保留了一个或多个页面。因此, -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.
[...]
不会在那里分配新页面。