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

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

概述在 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?我正在审查代码,并发现一个使用dle @H_419_0@ @H_419_0@ 在 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与来自共享对象的任何随机指针一样非法.像错误的功能,数据或其他. @H_419_0@ 总结

以上是内存溢出为你收集整理的linux – 为什么dlsym()返回的符号的值为null?全部内容,希望文章能够帮你解决linux – 为什么dlsym()返回的符号的值为null?所遇到的程序开发问题。

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

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

原文地址:https://54852.com/yw/1030721.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存