根据/bin/chgrp上的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的动态部分没有比较,它们是如何定位和加载的?(我已经检查了libc.so的DYNAMIC部分,并且没有这些库)
发布于 2015-06-29 03:43:08
运行程序时,各种libnss库由libc通过dlopen动态加载。加载哪些库取决于/etc/nsswitch.conf的内容。有关更多细节,请参见名称服务开关文档。
https://stackoverflow.com/questions/31106735
复制相似问题