dlopen()是否设置了errno?

时间:2016-10-20 14:59:28

标签: c linux dlopen

一切都在标题中。手册页没有说什么。一些谷歌报告有些人在dlopen之后检查errno,但只是少数并且有各种结果。该函数确实返回成功/非成功值,但应该如何找出失败的原因。

dlopen()设置errno也是如此?在哪里定义了不同的errno值? 如果没有,应该用什么来检查导致失败的原因?

1 个答案:

答案 0 :(得分:6)

No(强调补充)。

  

成功完成后, dlopen()将返回符号表句柄。如果找不到文件,则无法打开进行读取,不能通过 dlopen()处理相应的可执行对象文件格式,或者在此过程中发生错误加载文件或重定位其符号引用, dlopen()应返回空指针。 应通过dlerror() 提供更详细的诊断信息。

正如其他人所指出的那样,没有任何内容禁止dlopen()(或更可能是dlopen()调用的函数)修改errno。但符合标准的dlopen()不会通过errno报告自己的错误。您需要致电dlerror()