保护系统调用保护页面边界内的内存区:
int mprotect(void *addr, size_t len, int prot);这里的len应该是页面大小的倍数。
有没有办法只保护几个连续的地址,这些地址不与页边界对齐,即len < pagesize?
发布于 2009-11-06 17:36:17
我不这么认为,不。该限制是因为MMU在其所能控制的粒度上有硬件限制。有些表包含访问限制,您不能为每个字节使用一个表槽;表本身将占用您所有的RAM。因此,它变得更粗糙,每个页面都有表条目。
如果您使用的是Linux,则可以使用Valgrind执行某些操作。
发布于 2009-11-06 17:36:11
不,没有。你的操作系统的虚拟内存系统只在页面级运行,没有比这更小的了。
发布于 2014-07-28 21:36:09
我认为下面的链接是你所期望的,但你必须等待它的发布。
"MPX --英特尔®内存保护扩展“是所有C++程序员想要的。我非常期待它的到来。
https://stackoverflow.com/questions/1686464
复制相似问题