常量字符串为什么不能修改,字符型常量和字符串常量如何使用

首页 > 数码 > 作者:YD1662024-04-26 12:23:53


CPU页部件,就是大家所知的MMU,它的工作原理就是根据线性地址算出物理地址,因为数据是存放在内存条上的。硬件保护就是在这一步发挥作用的。MMU工作需要依赖Linux内核中的4级页表,就是上图。一般来说,前三级表不做权限控制,最后一级才做,如图

常量字符串为什么不能修改,字符型常量和字符串常量如何使用(13)


这个图中的数据叫页描述符,其中的RW位就是ChatGPT所说的硬件支持,为0表示只读,为1表示可读可写,我们来看看常量字符串这个位是多少

常量字符串为什么不能修改,字符型常量和字符串常量如何使用(14)


5的二进制是0b0101,RW位是0,即只读,秘密终于解开!

既然知道底层是如何实现的,那就知道怎么改了!

常量字符串为什么不能修改,字符型常量和字符串常量如何使用(15)


其他Linux内核提供的mprotect函数,本质就是干这个事的!

本文至此结束,你学会(废)了吗?
若有收获,就点个赞吧

上一页1234末页

栏目热文

文档排行

本站推荐

Copyright © 2018 - 2021 www.yd166.com., All Rights Reserved.