Linux系统glibc库版本信息查看

摘要:
有时我们经常需要检查当前系统的glibc版本。您可以按如下方式进行检查:/lib/libc。所以。6有时:/lib/x86-64-linux/libc。因此6.将文件作为命令执行。为什么库可以直接运行?Glibc是gnu发布的libc库,即c运行时。glibc是linux系统中最低级别的api,几乎任何其他运行时都将依赖glibc。Gcc和libc是相互依赖的软件,它们的合作模式类似于Linux系统的“引导”。

有时我们经常需要查看当前系统的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)iconv,不同字符集的编码转换
(7)inet,socket接口的实现
(8)intl,国际化,也即gettext的实现
(9)io
(10)linuxthreads
(11)locale,本地化
(12)login,虚拟终端设备的管理,及系统的安全访问
(13)malloc,动态内存的分配与管理
(14)nis
(15)stdlib,其它基本功能
gcc 是编译器,基本上 Linux 下所有的程序(包括内核)都是 gcc 编译的,libc 当然也是。
gcc 和 libc 是互相依赖的两个软件,它们合作的方式类似 Linux 系统的 "自举"。先在一个可以运行的带有老 libc 和 gcc 的系统上,用老 gcc 编译出一个新版本的 gcc + 老 libc,再用这个新 gcc 编译出一个新 gcc + 新 libc,再用这套东东编译整个新系统。


glibc版本查看

4.9. How can I find out which version of glibc I am using in the moment? {UD} If you want to find out about the version from the command line simply run the libc binary. This is probably not possible on all platforms but where it is simply locate the libc DSO and start it as an application. On Linux like /lib/libc.so.6 This will produce all the information you need. What always will work is to use the API glibc provides. Compile and run the following little program to get the version information: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ #include <stdio.h> #include <gnu/libc-version.h> int main (void) { puts (gnu_get_libc_version ()); return 0; } ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ This interface can also obviously be used to perform tests at runtime if this should be necessary.


Just execute:

ldd --version

which comes with glibc package

免责声明:文章转载自《Linux系统glibc库版本信息查看》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇RPi 树莓派 DSI 接口研究 MIPI raspberry pibackgroundsize下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

LXC(Linux containers)常用命令介绍

lxc-version 用于显示系统LXC的版本号(可以通过此命令判断系统是否安装了lxc) 用法:lxc-version 例如:lxc-version  lxc-checkconfig 用于判断linux内核是否支持LXC 用法:lxc-checkconfig 例如:lxc-checkconfig lxc-create用于创建一个容器 用法:lxc-cr...

Kali Linux 搜狗输入法安装

本文转载至:https://www.cnblogs.com/captainRoB/p/7377290.html 1、下载 搜狗输入法 for Linux http://pinyin.sogou.com/linux/  //有64位和32位的deb包 我这里下载的是 : sogoupinyin_2.1.0.0086_amd64.deb 2、安装 Kali基于...

Android版本与Linux内核的关系及代码获取

一.Android版本与Linux内核的关系 英文名 中文名 Android版本 Linux内核版本 No 无 1.1 Cupcake 纸杯蛋糕 1.5 2.6.27 Donut 甜甜圈 1.6 2.6.29 Eclair 松饼 2.0 2.6.29 Eclair 松饼 2.1 2.6.29 Froyo 冻酸奶 2.2 2.6....

gcc/g++编译

1. gcc/g++在执行编译工作的时候,总共需要4步 (1).预处理,生成.i的文件[预处理器cpp] (2).汇编,将预处理后的文件转换成汇编语言,生成文件.s[编译器egcs] (3).编译,将汇编语言文件编译为目标代码(机器代码)生成.o的文件[汇编器as] (4).链接,将目标代码,生成可执行程序[链接器ld] [参数详解]   -x lang...

linux命令&amp;lt;服务进程、查看日志、文件编辑、赋权等&amp;gt;

sudo命令以系统管理者的身份执行指令,也就是说,经由 sudo 所执行的指令就好像是 root 亲自执行。 sudo apt-get update  更新 /etc/apt/sources.list 和 /etc/apt/sources.list.d 中列出的源的地址,这样才能获取到最新的软件包; sudo apt-get upgrade  升级已安装的...

Linux服务器,服务管理--systemctl命令详解,设置开机自启动

Linux服务器,服务管理--systemctl命令详解,设置开机自启动 syetemclt就是service和chkconfig这两个命令的整合,在CentOS 7就开始被使用了。 摘要: systemctl 是系统服务管理器命令,它实际上将 service 和 chkconfig 这两个命令组合到一起。 任务 旧指令 新指令 使某服务自动启动...