保护标志会影响进程之间的共享吗?如果我有 PROT_READ|PROT_WRITE 保护的映射内存区域,只要我没有写入它,它是否仍然完全共享?
int prot = PROT_READ|PROT_EXEC;
image = mmap(NULL, filesize, prot, MAP_PRIVATE, fildes, 0);
与:
int prot = PROT_READ|PROT_WRITE|PROT_EXEC;
image = mmap(...)
我想在映射后对内存区域的一小部分进行小修改,然后重新保护它,因为它比在我需要时保护小部分更简单。
问题是它最终是强制每个进程复制整个文件还是只是我在每个进程中修改的部分?