有时我们经常需要查看当前系统的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

转自:https://my.oschina.net/acmfly/blog/77211

查看当前系统的glibc版本相关推荐

  1. 查看linux内核的glibc库,查看当前系统的glibc版本

    有时我们经常需要查看当前系统的glibc版本,可以这样查看: /lib/libc.so.6 有时:/lib/x86-64-linux/libc.so.6 把这个文件当命令执行一下 为什么这个库可以直接 ...

  2. 如何查看linux系统的jdk版本

    如何查看linux系统的jdk版本 1.查找使用的jdk安装后的目录 echo $JAVA_HOME: 假设为:/opt/soft/java 2.进入到jdk安装目录下面的bin目录 cd  /opt ...

  3. Linux 查看内核 系统 等软件版本命令

    内核版本:uname -a   || cat /proc/version 当前操作系统版本:lsb_release -a    ||     cat /etc/redhat-release || ca ...

  4. 查看win10系统的CUDA版本

    很多小伙伴在安装pytorch官网选择安装环境或许不清楚自己电脑的CUDA版本,下面小编将会手把手教会您如何找到自己电脑的CUDA版本. 一.打开NVIDIA控制面板         1.按住win+ ...

  5. 如何查看windows系统的软件版本?

    进入控制面板->找到程序和功能就可以查看到了版本程序了

  6. 查看winpe系统的语言版本

    可以再命令提示符下使用chcp命令来查看. 参考链接: http://www.baidu.com/link?url=YsVL1B5jy3crw_EXrOuQ5b0o07ghJuDpa9daWVkcfj ...

  7. glibc版本查看_Linux开发必知内容整理 | libc、glibc和glib的关系

    在进行Linux开发不可避免的要调用一些系统的API,我们经常开到的概念有诸如glibc.libc和glib等等.那么这些系统库之前的关系是什么样的呢?下面小编带大家了解一下这些库之前的共同点和差异, ...

  8. linux gcc 与 glibc 的关系 glibc版本查看

    glibc是什么,以及与gcc的关系? glibc是gnu发布的libc库,也即c运行库.glibc是linux 系统中最底层的api(应用程序开发接口),几乎其它任何的运行库都会倚赖于glibc.g ...

  9. Linux升级glibc版本汉字乱码,Linux CentOS6升级glibc库过程

    CentOS6升级glibc库过程 hadoop无法加载native库,可能原因是 glibc库版本过低,需要升级. 第一:安装以下软件 yum -y install zlib zlib-devel ...

最新文章

  1. Android官方命令深入分析之Device Monitor
  2. opencv滤波美颜
  3. SpringCloud 应用在 Kubernetes 上的最佳实践 — 线上发布(可监控)
  4. ie打开完成,网页显示空白
  5. html清除图片缓存
  6. Nessus进行漏洞扫描的过程
  7. 一段话系列-正则基础
  8. python之列表操作
  9. java跳_用Java实现跳表
  10. [Vue CLI 3] 配置 webpack-bundle-analyzer 插件
  11. 随机抽奖 php,php随机抽奖
  12. 软件体系结构复习指南
  13. 【UE编辑器怎么添加新的语法高亮】
  14. 微信支付服务器白名单,总结下我在微信支付中趟的那些坑。
  15. HTML5七夕情人节表白网页制作【唯美3D相册】HTML+CSS+JavaScript
  16. 从多个Word文档中批量取值,整理到Excel表中。
  17. CCPC 1010 YJJ's Salesman
  18. 直流无刷电机的调试与代码开源(配套资源)
  19. 【已解决】微信开发者工具打不开(或显示nw.js)
  20. 火星开发的价值_开发火星是幌子,月球才是必争之地

热门文章

  1. RecursiveTask和RecursiveAction的使用 以及java 8 并行流和顺序流
  2. 06.search_shard_api操作
  3. 04.elasticsearch-dynamic_mapping_and_index_template
  4. 【通俗易懂】什么是状态机?
  5. 简便满分解法:1005 继续(3n+1)猜想 (25分)
  6. 4行代码解决:L1-057 PTA使我精神焕发 (5分)
  7. I/O数据有几种传送方式?各有什么特点?【最精炼】
  8. 最全!最完整的设计词法分析程序的代码!!!
  9. 算法竞赛入门经典(第二版) | 例题4-5 追踪电子表格中的单元格 (UVa512,Spreadsheet Tracking,World Finals)(解法二)
  10. C++编程练习:多态实验——设计一个基类Shapes,Shapes类公有派生产生矩形类Rectangle和圆类Circle