gpt4 book ai didi

linux - ld-linux --验证退出码

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

检查/usr/bin/ldd 的源代码,我看到它使用 ld-linux 来查找可执行文件的依赖项,尽管它首先使用 --verify 参数调用 ld-linux。然后脚本会根据 ld-linux --verify 调用的退出代码执行不同的操作。

ld-linux 的手册页没有提供有关退出代码的任何信息,Google 搜索也没有任何值(value)。是否有任何文档(除了查看 ld-linux 的源代码)提供了 ld-linux --verfify 的退出代码列表及其各自的含义?

最佳答案

我没有找到任何文档,但是...

  if (__builtin_expect (mode, normal) == verify)
{
/* We were called just to verify that this is a dynamic
executable using us as the program interpreter. Exit with an
error if we were not able to load the binary or no interpreter
is specified (i.e., this is no dynamically linked binary. */
if (main_map->l_ld == NULL)
_exit (1);

/* We allow here some platform specific code. */
#ifdef DISTINGUISH_LIB_VERSIONS
DISTINGUISH_LIB_VERSIONS;
#endif
_exit (has_interp ? 0 : 2);
}

所以...

  • 0 表示成功,即“程序是动态链接的,这个动态链接器可以处理它”
  • 1 表示 ld-linux “无法加载二进制文件”(我得到这是当我使用不存在的、非二进制或静态二进制文件运行 ld-linux 时)
  • 2 表示“没有指定解释器”。更具体地说,程序头表中没有 p_type 等于 PT_INTERP 的元素(我在使用共享库运行 ld-linux 时得到这个)

没有其他代码。

关于linux - ld-linux --验证退出码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1256145/

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