gpt4 book ai didi

c - 如何使用 NULL 检查以外的内置函数来验证指针?

转载 作者:IT王子 更新时间:2023-10-29 00:51:40 25 4
gpt4 key购买 nike

在今天的讨论中,我发现 VxWorksLynxOS 中的检查告诉您为指针分配的地址来自有效范围.这是我第一次听说这个代码,就像我分配 int *i=&variable; 一样。

我应该收到一条警告或错误,指出在我的应用程序中我无法将地址值分配给整数。

就像我做 NULL 检查一样,我只检查地址 0x00000000。但地址可能是 0x00000001。如果它是未映射的区域并且可能无法访问,这也是无效的情况。有没有人知道 Linux 的一些类似事情,或者可以指导如何在 VxWorksLynxOS 中完成。

有什么想法吗?

最佳答案

您在 VxWorks 中寻找的函数称为 vxMemProbe

基本上,vxMemProbe 库会插入特殊的异常处理代码来捕获页面错误或总线错误。 vxMemProbe 函数用于检查地址是否可读或可写。它还允许您测试特定地址是否可以通过给定的数据宽度(8、16、32、64 位)和对齐方式访问。

vxMemProbe 的底层机制与特定架构的异常处理机制相关联。 vxMemProbe 库将代码插入到异常处理程序中。当您探测触发异常的地址时,处理程序会检查 vxMemProbe 是否触发了异常。如果是这样,则处理程序恢复异常之前的状态处理器并将执行返回到调用 vxMemProbe 的位置,同时还通过给定调用约定的体系结构返回值。

关于c - 如何使用 NULL 检查以外的内置函数来验证指针?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45840590/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com