首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >可选的mprotect()

可选的mprotect()
EN

Stack Overflow用户
提问于 2009-11-06 17:30:59
回答 3查看 988关注 0票数 4

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

代码语言:javascript
复制
int mprotect(void *addr, size_t len, int prot);

这里的len应该是页面大小的倍数。

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

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2009-11-06 17:36:17

我不这么认为,不。该限制是因为MMU在其所能控制的粒度上有硬件限制。有些表包含访问限制,您不能为每个字节使用一个表槽;表本身将占用您所有的RAM。因此,它变得更粗糙,每个页面都有表条目。

如果您使用的是Linux,则可以使用Valgrind执行某些操作。

票数 5
EN

Stack Overflow用户

发布于 2009-11-06 17:36:11

不,没有。你的操作系统的虚拟内存系统只在页面级运行,没有比这更小的了。

票数 1
EN

Stack Overflow用户

发布于 2014-07-28 21:36:09

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

https://software.intel.com/en-us/blogs/2013/07/22/intel-memory-protection-extensions-intel-mpx-support-in-the-gnu-toolchain

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1686464

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档