如何以编程方式查找加载的共享库的版本?
问题描述:
我知道我可以通过运行它来获得一些linux共享库的版本。例如如何以编程方式查找加载的共享库的版本?
bash$ /lib/x86_64-linux-gnu/libc.so.6
GNU C Library (Ubuntu GLIBC 2.23-0ubuntu9) stable release version 2.23, by Roland McGrath et al.
我还可以得到加载的共享库编程使用dl_iterate_phdr(3)正在运行的进程。
如何以编程方式获取版本信息?
答
也许这将帮助: https://unix.stackexchange.com/questions/58846/viewing-linux-library-executable-version-info
基本上,ELF包含字段SONAME告诉库的名称与主要版本。
答
您可以使用系统调用,无论您在cli中使用哪个命令,都将其插入此命令中。
system(“command”);
这是一种低效率的方式来做到这一点,但它是一种选择。
你运行它的技巧只适用于libc。您可以使用rpm或dpkg查看软件包版本。 – stark