在调用mmap()之后,MAP_PRIVATE句柄如何更改为基础文件

时间:2018-05-31 21:01:20

标签: linux gnu mmap

假设我有三个独立的进程(PV,PS和PH),每个进程在整个文件上调用mmap()。 PV使用MAP_PRIVATE标志调用mmap(),而PS和PH使用MAP_SHARED标志调用mmap()。据我所知,PV对内存块的更改不会传播到PS或PH。我也明白PS所做的更改会传播到PH,但这些更改是否会传播到PV?或PV是否与使用MAP_SHARED的进程所做的更改隔离?

其次,假设它们都没有写入mmap()内存,它们是否都使用相同的物理内存?或者MAP_SHARED和MAP_PRIVATE导致单独的物理内存分配?

1 个答案:

答案 0 :(得分:0)

来自mmap()的手册页:

  

未指定是否对文件进行了更改                     mmap()调用在映射区域中可见。

tldr = Booooo!