mprotect()的替代方案

mprotect()的替代方案,c,memory,protection,C,Memory,Protection,mprotect系统调用保护页面边界内的内存区域: int mprotect(void *addr, size_t len, int prot); 此处len应为页面大小的倍数 有没有办法只保护几个与页面边界不对齐的连续地址,即len

mprotect系统调用保护页面边界内的内存区域:

int mprotect(void *addr, size_t len, int prot);
此处
len
应为页面大小的倍数


有没有办法只保护几个与页面边界不对齐的连续地址,即
len

没有。操作系统的虚拟内存系统只在页面级别上运行,没有比页面级别更小的功能。

我不这么认为,没有。限制是因为硬件限制了它可以控制的粒度。有些表具有访问限制,不能为每个字节设置表槽;桌子本身会占用你所有的内存。因此,它变得更粗糙,每个页面都有表格条目


如果你在Linux上,你也许可以使用Valgrind做一些事情。

我认为下面的链接是你所期望的,但你必须等待它发布

“MPX——英特尔®内存保护扩展”是所有C++程序员想要的。 我非常期待