加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

c – 内存访问回调?

发布时间:2020-12-13 19:00:34 所属栏目:Linux 来源:网络整理
导读:当访问内存(读取或写入)时,是否存在分配某些内存并具有某种回调(无论是指向函数或信号的指针)的方法? 例如,如果我说分配1mb的内存,我想有办法在访问任何1mb时调用一个函数. 我正在研究的平台是x86 Linux,用C/C++编写. 最佳答案 就在这里. 使用mprotect(2)系

当访问内存(读取或写入)时,是否存在分配某些内存并具有某种回调(无论是指向函数或信号的指针)的方法?

例如,如果我说分配1mb的内存,我想有办法在访问任何1mb时调用一个函数.

我正在研究的平台是x86 Linux,用C/C++编写.

最佳答案
就在这里.

使用mprotect(2)系统调用(参见:http://linux.die.net/man/2/mprotect)在页面上设置只读或无访问内存保护,并设置在访问内存时将调用的SIGEGVsignal处理程序.

请注意,您需要在信号处理程序中使用mprotect,以便在调用信号处理程序后实际允许内存访问,并且当您在不知情的情况下打开窗口以访问内存时,例如从不同的线程.根据您的具体用法,这可能是也可能不是问题.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读