在同一个进程中,同一个文件的多个MAP_PRIVATE映射仍然是私有的吗?
Linuxmmap(2)说:
MAP_PRIVATE
创建私有的写时复制映射。映射的更新对映射同一文件的其他进程不可见,也不会传递到底层文件。未指定mmap()调用后对文件所做的更改在映射区域中是否可见。
我特别询问这部分:“映射同一文件的其他进程不可见”
但是这个过程中同一个文件的其他映射呢?
我知道“更改......不会传递到底层文件”,但这并不能清楚地表明这些更改是否影响同一文件的其他映射。
以下相关问题不回答这个问题:
- 在 MAP_PRIVATE 上查询
- 写入 MAP_PRIVATE 映射文件
- 线程的 mmap 中 MAP_PRIVATE 和 MAP_SHARED 之间的区别
Nate Eldredge 指出POSIX mmap规范也没有指定这种行为,仅说明:
如果
MAP_PRIVATE指定,则调用进程对映射数据的修改应仅对调用进程可见,并且不应更改底层对象。
THE END
二维码