chgrp和链接库

时间:2015-06-29 02:00:22

标签: linux dynamic dynamic-linking gnu-coreutils

根据/ bin / chgrp上的ldd linux命令,执行它的唯一必需库是libc.so.当使用gdb调试chgrp时,我注意到其他库实际上已加载,例如:

/lib/x86_64-linux-gnu/libnss_compat.so.2
/lib/x86_64-linux-gnu/libnsl.so.1
/lib/x86_64-linux-gnu/libnss_nis.so.2
/lib/x86_64-linux-gnu/libnss_files.so.2

为什么这些库在ldd输出中不进行比较?

另外:他们没有在libc.so的DYNAMIC部分进行比较,它们是如何定位和加载的? (我用readelf检查了libc.so的DYNAMIC部分,这些库不在那里)

1 个答案:

答案 0 :(得分:3)

运行程序时,libnss通过dlopen动态加载各种libc库。加载哪些库取决于/etc/nsswitch.conf的内容。有关详细信息,请参阅Name Service Switch documentation