我对linux中的共享库有疑问。如果进程使用写权限映射共享库并写入它,它是否会触发copy-on-write?
例如,进程A的内存映射具有以下条目:
40321000-40336000 r-xp 00000000 b3:15 875 /system/lib/libm.so
40336000-40337000 r--p 00014000 b3:15 875 /system/lib/libm.so
40337000-40338000 rw-p 00015000 b3:15 875 /system/lib/libm.so
第3个条目具有权限rw-p,这意味着它具有写入权限。因此,如果进程A写入此部分,是否写入了copy-on-write?如果是这样,是否意味着具有相同共享库映射的其他进程将无法看到A写入的数据进程?
嘉文
答案 0 :(得分:3)
由于映射是私有的,因此其他进程不会得到A的写入
的更改http://man7.org/linux/man-pages/man2/mmap.2.html(MAP_PRIVATE将确保不会反映A&#39的更改)