加入收藏 | 设为首页 | 会员中心 | 我要投稿 PHP编程网 - 黄冈站长网 (http://www.0713zz.com/)- 数据应用、建站、人体识别、智能机器人、语音技术!
当前位置: 首页 > 服务器 > 搭建环境 > Linux > 正文

linux – 为什么dlsym()返回的符号的值为null?

发布时间:2021-01-12 15:35:12 所属栏目:Linux 来源:网络整理
导读:在Linux中.根据dlsym(3)Linux手册页, *Since the value of the symbol could actually be NULL (so that a NULL return from dlsym() need not indicate an error),* 为什么这个,符号(特别是一个函数)何时才能实际为NULL?我正在审查代码,并发现一个使用dl

在Linux中.根据dlsym(3)Linux手册页,

    *Since the value of the symbol could actually be NULL
    (so that a NULL return from dlsym() need not indicate an error),*

为什么这个,符号(特别是一个函数)何时才能实际为NULL?我正在审查代码,并发现一个使用dlerror首先清理,dlsym接下来,dlerror检查错误.但它在调用之前不检查结果函数是否为null:

> dlerror();
> a_func_name = … dlsym(…);
> if(dlerror())goto end;
> a_func_name(…); //从未检查过a_func_name == NULL;

我只是一个评论者,所以没有选择只添加支票.也许作者知道NULL永远不会被返回.我的工作是挑战,但不知道是什么可以使这返回一个有效的NULL,所以我可以检查在这个代码的上下文中是否可以满足这样的条件.没有找到正确的东西与谷歌阅读,指向良好的文档是足够的,除非你想明确解释哪个会很棒. 最佳答案 好吧,如果返回时没有错误,那么指针是有效的,NULL与来自共享对象的任何随机指针一样非法.像错误的功能,数据或其他.

(编辑:PHP编程网 - 黄冈站长网)

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

    热点阅读