【如何设置某个内存位只读,只限制某个地址,而不是一页】

piaochen_2002 2010-11-07 03:11:14
标准c中有mprotect可以设置,但是是分页的,每次都设置为一个页面的大小。
希望高手可以解答,需要附代码,c以及汇编皆可。
...全文
505 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
chongerfeia 2010-11-09
  • 打赏
  • 举报
回复
对头,看看386以上的保护模式下的分段分页机制,就明白了

[Quote=引用 1 楼 truelance 的回复:]

只能按页设置。这是CPU决定的。
[/Quote]
熊熊大叔 2010-11-07
  • 打赏
  • 举报
回复
之所以只能按页设置,是因为内存的属性如果能被程序设置,也是要保存在内存中。假设一页内存的属性要占一个字节,每页4k的话,4G内存中就要有1M拿出来保存内存页的属性。
如果每个内存位都能设置的,那么4G内存就只好都拿来保存属性用,就没有内存用于程序运行和保存数据了。
熊熊大叔 2010-11-07
  • 打赏
  • 举报
回复
只能按页设置。这是CPU决定的。

70,021

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧