有时我们经常需要查看当前系统的glibc版本,可以这样查看:
/lib/libc.so.6
有时:/lib/x86-64-linux/libc.so.6
把这个文件当命令执行一下
为什么这个库可以直接run呢? 原来在libc的代码中有一点小手脚:
Makerules:586:LDFLAGS-c.so += -e __libc_main
csu/version.c:71:__libc_main (void)
void
__libc_main (void)
{
__libc_print_version ();
_exit (0);
}
或者:
因为ldd命令也是glibc提供的,所以也能查看
ldd --version
glibc是什么,以及与gcc的关系?
glibc是gnu发布的libc库,也即c运行库。glibc是linux 系统中最底层的api(应用程序开发接口),几乎其它任何的运行库都会倚赖于glibc。glibc除了封装linux操作系统所提供的系统服务外,它本 身也提供了许多其它一些必要功能服务的实现,主要的如下:
(1)string,字符串处理
(2)signal,信号处理
(3)dlfcn,管理共享库的动态加载
(4)direct,文件目录操作
(5)elf,共享库的动态加载器,也即interpreter
(6)