gpt4 book ai didi

c - 当还使用 PROT_READ 时,mmap MAP_SHARED 和 MAP_PRIVATE 之间有区别吗?

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

如果我创建一个 mmap(2) 文件,其 prot 参数仅为 PROT_READ 并且支持它的文件也被读取- 仅且不变,MAP_SHAREDMAP_PRIVATE 之间是否存在任何性能差异(或任何差异)?内核会在两者之间做一些不同的事情吗?

(文档仅提及“更新”方面的行为差异,但因为它是PROT_READ,所以不可能没有更新。我想知道是否还有其他差异?)

最佳答案

MAP_PRIVATE 下,Linux 联机帮助页指出未指定在映射区域中是否可见调用 mmap() 后对文件所做的更改。 MAP_SHARED 不是这种情况。所以如果你需要映射的内容和文件的内容一起更新,你最好使用MAP_SHARED。如果底层文件本身是只读的并且不能更改,那么当然这些都不适用。

如果使用 PROT_READ,我看不出 MAP_PRIVATEMAP_SHARED 之间应该有什么不同。事实上,尽管上面有关于未指定行为的警告,但我的猜测(我还没有测试过)实际上在 PROT_READ 下两者之间没有任何区别。

关于c - 当还使用 PROT_READ 时,mmap MAP_SHARED 和 MAP_PRIVATE 之间有区别吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14419940/

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