mprotect 系统调用保护页面边界内的内存区域:
int mprotect(void *addr, size_t len, int prot);
这里的len
应该是页面大小的倍数。
是否有办法仅保护一些不与页面边界对齐的连续地址,即len < pagesize
?
很抱歉,没有的。你的操作系统的虚拟内存系统只能在页面级别上运行,没有比这更小的。
我认为下面的链接是您所期望的,但您必须等待它发布。
"“MPX——Intel® Memory Protection Extensions”是所有C++程序员都想要的。我非常期待它。
"