首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >dlopen()是否设置errno?

dlopen()是否设置errno?
EN

Stack Overflow用户
提问于 2016-10-20 14:59:27
回答 1查看 1.6K关注 0票数 3

一切都在标题中。手册页什么也没说。一些谷歌报告说,一些人在dlopen之后检查errno,但很少,结果也不尽相同。函数确实返回一个成功/不成功的值,但是应该如何找出失败的原因。

那么dlopen()设置了errno吗?那么,在哪里定义了不同的errno值?如果没有,应该使用什么来检查导致故障的原因?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-10-20 15:02:13

不是 (重点补充)。

成功完成后,dlopen()将返回一个符号表句柄。如果找不到文件,无法打开读取文件,不具有dlopen()处理的适当可执行对象文件格式,或者在加载文件或重新定位其符号引用过程中发生错误,则dlopen()将返回一个空指针。应通过 http://pubs.opengroup.org/onlinepubs/9699919799/functions/dlerror.html获得更详细的诊断信息。

正如其他人所指出的,没有什么可以禁止dlopen() (或者更可能是dlopen()调用的函数)修改errno。但是符合标准的dlopen()不会通过errno报告自己的错误。你需要打电话给dlerror()

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40158005

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档