【发布时间】:2012-04-23 04:06:33
【问题描述】:
我正在使用 mmap 分配内存,并使用 mprotect 将一些页面标记为 PROT_READ,而将少数页面标记为 PROT_NONE。我的实现具有基于内存权限的逻辑。目前我有内存位置信息,我如何获得它的当前保护状态? (PROT_READ/PROT_NONE)
【问题讨论】:
标签: linux memory memory-management mprotect
我正在使用 mmap 分配内存,并使用 mprotect 将一些页面标记为 PROT_READ,而将少数页面标记为 PROT_NONE。我的实现具有基于内存权限的逻辑。目前我有内存位置信息,我如何获得它的当前保护状态? (PROT_READ/PROT_NONE)
【问题讨论】:
标签: linux memory memory-management mprotect
我不知道是否有系统调用来检索此信息。
绝对最坏的情况你可以解析/proc/<pid>/maps。
【讨论】:
/proc/$pid/maps 或/proc/self/maps,以及/proc/$pid/smaps 或/proc/$pid/smaps 是Linux 获取该信息的方式(这不是最坏的情况 i>,这是Linux上的好办法,没有其他办法)。