c– 内存访问回调?

c– 内存访问回调?,第1张

概述当访问内存(读取或写入)时,是否存在分配某些内存并具有某种回调(无论是指向函数或信号的指针)的方法?例如,如果我说分配1mb的内存,我想有办法在访问任何1mb时调用一个函数.我正在研究的平台是x86 Linux,用C/C++编写.最佳答案就在这里.使用mprotect(2)系统调用(参见:http://linux.die.net/man/2/mprotect

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

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

我正在研究的平台是x86 Linux,用C/C++编写.最佳答案就在这里.

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

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

总结

以上是内存溢出为你收集整理的c – 内存访问回调?全部内容,希望文章能够帮你解决c – 内存访问回调?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/1046732.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-24
下一篇 2022-05-24

发表评论

登录后才能评论

评论列表(0条)

保存