精华内容
参与话题
问答
  • glibc 简介:

    2016-06-15 10:01:00
    glibc  编辑 glibc是GNU发布的libc库,即c运行库。glibc是linux系统中最底层的api,几乎其它任何运行库都会依赖于glibcglibc除了封装linux操作系统所提供的系统服务外,它本身也提供了许多其它一些必要功能...

    glibc

     编辑
    glibc是GNU发布的libc库,即c运行库。glibc是linux系统中最底层的api,几乎其它任何运行库都会依赖于glibc。glibc除了封装linux操作系统所提供的系统服务外,它本身也提供了许多其它一些必要功能服务的实现。由于 glibc 囊括了几乎所有的 UNIX通行的标准,可以想见其内容包罗万象。而就像其他的 UNIX 系统一样,其内含的档案群分散于系统的树状目录结构中,像一个支架一般撑起整个操作系统。在 GNU/Linux 系统中,其C函式库发展史点出了GNU/Linux 演进的几个重要里程碑,用 glibc 作为系统的C函式库,是GNU/Linux演进的一个重要里程碑。
    外文名
    glibc
    字符串处理
    string
    信号处理
    signal
    文件目录操作
    direct

    功能实现

    编辑
    主要的如下:
    (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,其它基本功能

    GLIBC 的内容

    编辑
    由于 glibc 囊括了几乎所有的 UNIX 通行的标准,可以想见其内容包罗万象。而就像其他的 UNIX 系统一样,其内含的档案群分散于系统的树状目录结构中,像一个支架一般撑起整个操作系统。以 glibc-2.2 为例,这些档案群主要包括:
    1.分享函式库群:
    这是 glibc 的主体,分布 /lib 与 /usr/lib 中,包括 libc 标准 C 函式库、libm 数学函式库、libcrypt 加密与编码函式库、libdb 资料库函式库、libpthread 行程多执行绪函式库、libnss 网路服务函式库 .... 等等。这些都是可分享函式库,档名都以 .so 做结尾。其中,/lib/ld*.so 是程式与函式库连结的工具。有的用于程式编译时将程式与函式库内的函式物件连结,在只支援静态连结的系统中,此连结方式就是直接将所需的物件自函式库中抽出来与程式的可执行档相连,而在支援可分享函式库的系统中,在程式编译时期的连结只是在执行档中纪录了那些函式物件是存在那个函式库档案中,等该程式开始执行时,则由另一个负责动态连结的 ld*.so 将所需的函式库连结好并执行。
    一般而言,负责程式编译时期的连结器档名为 ld. so,而负责程式执行时的动态连结器档名为 ld- .so 或 ld-linux. so (在 GNU/Linux 系统中)。
    函式库标头档与程式开发元件:
    这些标头档档名都以 .h 为结尾,全部在 /usr/include/ 底下,其内容为函式库中各函式的宣告、巨集定义、资料物件的型别 .... 等等,这些都是程式开发者不可或缺的部分。
    除此之外,在 /usr/lib/ 中还有若干 .o 与 .a 的档案,这些是程式编译过程中要连结为可执行档时所需的元件,有些则为上述可分享函式库的静态连接版本,而后者可以在某些特殊场合下需要静态连结程式时使用。
    函式库说明文件:
    在一般的 UNIX 系统下,这些说明文件是放在 /usr/man 或 /usr/share/man 底下,统称为 man pages,其底下还分若干章节,其中第二章 (man2) 讲的是系统呼叫,而第三章 (man3) 讲的就是 libc 标准函式库,这些都是系统开发者重要的参考资料。
    而在 GNU 的系统中,除了 man pages 之外,还有一套称为 info 的文件资料系统,而且里头的说明往往比 man pages 还要详尽,这在 glibc 中也不例外。glibc 的 info 文件位于 /usr/share/info/libc. info* ,本文中有许多素材就是取自这些文件的内容。
    字集转换模组与区域化资料库:
    这些是与程式国际化与本土化相关的部分,主要可分成四大块: /usr/lib/gconv/ 内含大量的字集转换模组,大部分是各种字集及编码方式与系统的基底字集之间的 转换。第二块是 /usr/lib/locale,内含以系统基底字集写成的区域化资料库 (locale),像是 LC_CTYPE、LC_TIME .... 等等。第三块是
    /usr/share/locale/,内含可跨平台使用的区域化资料,主要是各应用程式的信息翻译部分。而最后一块是 /usr/share/i18n/,其内容是各区域化资料库的原始码,以及系统支援的内码对应表 .... 等等。
    时区资料库:
    主要分别在 /usr/share/zoneinfo 底下,内含世界各地时区与格林威治时间的转换资料。
    其他工具程式与设定档:
    工具程式分布在 /usr/bin 与 /sbin 底下,包括一些转码与区域化资料库相关的程式如 iconv, locale, localedef 等,以及用来显示应用程式与可分享函式库相依关系的 ldd, 还有可分享函式库搜寻路径管理程序 ldconfig .... 等。而其相关的设定档则位于 /etc 底下。
    disaos
    03-11-03, 10:42

    GLIBC 的规格

    编辑
    在 GNU/Linux 系统中,其 C 函式库的发展史点出了 GNU/Linux 演进的几个重要里程碑,由此可以突显出 C 函式库在系统中的地位与重要性。早期的 GNU/Linux 系统并不支援可分享函式库,因此所有的应用程式都是以静态连结的方式存于系统中。直到 1995-1996 年 libc5 问世以后,系统才开始支持 ELF 可分享函式库,同时该版的 C 函式库也创作了其他 UNIX 上大部分的功能与函式群,可谓 GNU/Linux 发展上的一大进步。
    然而 libc5 在程式国际化 (I18N) 与本土化 (L10N) 方面的支持很差,故那个时候若要开发所谓中文化的程式,就非得自行创作一套标准不可。直到一两年后, GNU/Linux 换用了 GNU 所开发的 glibc-2.0 做为其 C 函式库后,其国际化与本土化的支援才开始起步,后来经历 glibc-2.1,到了现在的 2.2 版,整个多国语文的开发环境才大至成熟。
    用 glibc 做为系统的 C 函式库,是 GNU/Linux 演进的一个重要里程碑。在 GNU 的计划中,开发 glibc 原本是要给他们尚未问世的核心 GNU/Hurd 用的,由于当时几乎 99% 的 GNU 系统工具已开发完成,就独缺核心 Hurd,而恰巧 Linux 核心在 Torvalds 的带领下已逐渐成熟稳定,而且可以顺利执行所有的 GNU 系统工具。故 GNU 团队便顺应 Linux 核心的特性,改写了他们的 glibc,使其可以适用于 Hurd 核心与 Linux 核心。如此,在这两个平台上就有了一致的程式开发环境,使得所有的 GNU 程式可以在这两个平台之间顺利移植。
    比起过去的 libc5,glibc 系列 (一般又称之为 libc6) 除了有完整的国际化与本土化支援外,同时还符合许多标准与规格,使得在 glibc 下开发的程式可以很容易移植到其他 UNIX 平台去。这些标准包括:
    ISO C:
    ISO C 是 International Standard for the C programming language 的缩写,此标准明定了 C 语言的语法,标准 C 函式库应具备那些标头档、巨集定义、函式与物件 .... 等等,几乎在任何平台上的 C 语言 (包括非 UNIX 平台) 都支援此标准。
    POSIX:
    POSIX 是 Portable Operating System Interface for Computer Environments 的缩写,它是 ISO C 的延伸,明定了一个可移植的操作系统所应具备种种条件,其范围不只有系统函式库而已,还同时包括一些标准的工具程式、系统核心应有的特色与创作、以及在 C 函式库中某些与操作系统相关的低阶控制支援 (如系统呼叫窗口) 等等。由于 glibc 是完全按照 POSIX 的标准制作的,同时搭配了符合 POSIX 标准的 Linux 核心,故在此环境下开发的程式可以做到完全符合 POSIX 的规格。
    Berkeley Unix:
    Berkeley Unix 泛称柏克莱大学所开发的 UNIX 系列操作系统,包括 4.2 BSD、4.3 BSD、4.4 BSD 以及早期的 SunOS。这些系统的 C 函式库中有许多杰出的设计,但却没有在上述两个标准中,包括 select() 函式、sockets .... 等等,这些在 glibc 中都有支援。
    SVID:
    SVID 是 System V Interface Description 的缩写,它是一份描述 AT&T UNIX System V 系统规格的文件,它是 POSIX 标准的延伸。Glibc 创作了大部分的 SVID 规格要求,其中较重要的包括了行程之间的通?标准以及分享式记忆体 (shared memory),至于其他的部分则较不常使用。创作 SVID 主要的目的是希望可以做到与 UNIX System V 的相容与程式的可移植性。
    XPG:
    XPG 是 X/Open Portability Guide 的缩写,是由 X/Open Company, Ltd. 所发表,同时 X/Open 还拥有 UNIX 商标的版权。而这份规格不但是 POSIX 标准的扩充,同时也明定了一个 UNIX 操作系统所应符合的要求。其中包括了 iconv() 字集转换介面,以及部分 BSD 与 SVID 的特色。
    除了上述的规格外,glibc 还内含了 GNU 特有的特色,称之为 GNU Extension。这些特色在某些情况下可以方便程式的撰写与维护,但就不见得可以移植到其他 UNIX 平台上,故在可移植性的考量下使用时必须留意。
    安装下列程序: catchsegv, gencat, getconf, getent, glibcbug, iconv, iconvconfig, ldconfig, ldd, lddlibc4, locale, localedef, mtrace, nscd, nscd_nischeck, pcprofiledump, pt_chown, rpcgen, rpcinfo, sln, sprof, tzselect, xtrace, zdump 和 zic
    安装下列库文件: ld. so, libBrokenLocale.[a,so], libSegFault. so, libanl.[a,so], libbsd-compat.a, libc.[a,so], libc_nonshared.a, libcrypt.[a,so], libdl.[a,so], libg.a, libieee.a, libm.[a,so], libmcheck.a, libmemusage. so, libnsl.a, libnss_compat. so, libnss_dns. so, libnss_files. so, libnss_hesiod. so, libnss_nis. so, libnss_nisplus. so, libpcprofile. so, libpthread.[a,so], libresolv.[a,so], librpcsvc.a, librt.[a,so], libthread_db. so 和 libutil.[a,so]

    简短说明

    编辑
    catchsegv 当程序发生segmentation fault的时候, 用来建立一个堆栈跟踪。
    gencat 建立消息列表。
    getconf 针对文件系统的指定变量显示其系统设置值。
    getent 从系统管理数据库获取一个条目。
    glibcbug 建立glibc的bug报告并且email到bug报告的邮件地址。
    iconv 转化字符集
    iconvconfig 建立快速读取的iconv模块所使用的设置文件。
    ldconfig 设置动态链接库的实时绑定。
    ldd 列出每个程序或者命令需要的共享库。
    lddlibc4 辅助 ldd 操作目标文件。
    locale 是一个 Perl 程序,可以告诉编译器打开或关闭内建的locale支持。
    localedef 编译locale标准。
    mtrace...
    nscd 提供对常用名称设备调用的缓存的守护进程
    nscd_nischeck 检查在进行NIS+侦查时是否需要安全模式。
    pcprofiledump 打印PC profiling产生的信息。
    pt_chown 是一个辅助程序,帮助grantpt设置子虚拟终端的属主,用户组和读写权限。
    rpcgen 产生实现RPC协议的C代码。
    rpcinfo 对RPC服务器产生一个RPC呼叫。
    sln 用来创建符号链接,由于它本身是静态连接的,在动态连接不起作用的时候,sln仍然可以建立符号链接。
    sprof 读取并显示共享目标的特征描述数据。
    tzselect 对用户提出关于当前位置的问题,并输出时区信息到标准输出。
    xtrace 通过打印当前执行的函数跟踪程序执行情况。
    zdump 显示时区。
    zic 时区编译器
    ld. so 帮助动态链接库的执行。
    libBrokenLocale 帮助程序处理破损locale,如Mozilla。
    libSegFault 处理 segmentation fault 信号,试图捕捉segfaults。
    libanl 异步名称查询库。
    libbsd-compat 为了在linux下执行一些BSD程序,libbsd-compat提供了必要的可移植性。
    libc 是主要的C库--常用函数的集成。
    libcrypt 加密编码库。
    libdl 动态连接接口。
    libg g++的运行时。
    libieee IEEE浮点运算库。
    libm 数学函数库。
    libmcheck 包括了启动时需要的代码。
    libmemusage 帮助 memusage 搜集程序运行时内存占用的信息。
    libnsl 网络服务库。
    libnss* 是名称服务切换库,包含了解释主机名,用户名,组名,别名,服务,协议等等的函数。
    libpcprofile 帮助内核跟踪在函数, 源码行和命令中CPU使用时间。
    libpthread POSIX 线程库。
    libresolv 创建,发送及解释到互联网域名服务器的数据包。
    librpcsvc提供RPC的其他服务。
    librt 提供了大部分的POSIX.1b实时扩展的接口。
    libthread_db 对建立多线程程序的调试很有用。
    libutil 包含了在很多不同的 Unix程序中使用的“标准”函数。
    Glibc 安装依赖关系
    Glibc 依赖于: Bash, Binutils, Coreutils, Diffutils, Gawk, GCC, Gettext, Grep, Make, Perl, Sed, Texinfo[1]  .

    C 编程语言

    函式库
     C 标准函式库  glibc  Dietlibc
     uClibc  Newlib  EGLIBC
     Bionic    
     
    特性
     String  Syntax  Preprocessor
     Variable types and declarations  Functions  
     
    延伸的相关编程语言
     C++  Objective-C  D
     C#    
     
    C 与其他的编程语言
     Compatibility  运算子  Comparison of Pascal and C
     C to Java byte-code compiler    
     
    编译器
     Borland Turbo C  Clang  GCC
     LCC  Pelles C  PCC
     TCC  Visual C++  C++/CLI
     C++/CX  Watcom C/C++ compiler  
     
    参考资料
    展开全文
  • Glibc的介绍

    千次阅读 2018-10-24 16:04:08
    Glibc的主要功能 头文件 主要功能 ctype.h 字符测试 stdio.h 输入输出 stdlib.h 复杂的工具 string.h 字符串处理 assert.h 程序断言 limits.h 系统参数 stddef.h 通用类型和常量 time.h 时间...

    Glibc的主要功能

    头文件 主要功能
    ctype.h 字符测试
    stdio.h 输入输出
    stdlib.h 复杂的工具
    string.h 字符串处理
    assert.h 程序断言
    limits.h 系统参数
    stddef.h 通用类型和常量
    time.h 时间处理
    errno.h 错误检测
    locale.h 自适应
    math.h 数学函数
    setjmp.h 非局部分支
    signal.h 中断处理
    stdarg.h 可变长度参数表

    Glibc的常见库

    Library component Content Inclusion guidelines
    libBrokenLocale Fixup routines to get applications that havebroken locale features to run. Overrides application defaults through preloading. (Need touse LD_PRELOAD.) Rarely used.
    libSegFault Routines for catching segmentation faults and doing back traces. Rarely used.
    libanl Asynchronous name lookup routines. Rarely used.
    libbsd-compat Dummy library for certain BSD programs that are compiled with -lbsd-compat. Rarely used.
    libc Main C library routines Compulsory.
    展开全文
  • libc、glibc和glib的关系

    千次阅读 2018-07-29 07:06:00
    发现很多人没有搞清楚这两个东西.有个错误的观点:认为Glib是GNU的东东.(因为前面那个"g"),而Glibc是Glib的一个子集.其实,Glib和Glibc基本上没有...
        

    发现很多人没有搞清楚这两个东西.有个错误的观点:认为GlibGNU的东东.(因为前面那个"g"),GlibcGlib的一个子集.

    其实,GlibGlibc基本上没有太大的联系,可能唯一的共同点就是他们都是UNIXC编程调用的库而已GlibGTK+调用的底层核心库.(GTK+由开发GIMP的一些工具包集合发展而来).GIMPGnome这样的图形界面程序都是基于GTK+.
    大家都知道C本身缺少数据结构,和一些重要的处理函数,C本身最复杂的数据结构也就是数组了.那么当你需要一个数据结构的话就自己得定义.幸好前人已经帮我们完成这个工作.他们把这写常用的数据结构和处理方法包装成一个库.其中之一就是Glib.Glib中定义了很多有用的数据结构.如数组(长度可变),()向链表,hash,队列,还有关系(学过关系型数据库的都应该知道这个概念).一些常用的处理方法如:字符串的处理,标准输出(g_print),错误输出,日志记录,为了portable而定义的一些基本数据类型(gint,gchar, guint)极其他们的限制,还有事件循环,线程,IO操作等.
    GTK+
    和如今的多数GUI编程语言一样,基于消息传递与事件处理(GTK+里用信号,和消息的本质是一样的,只不过是前人帮我们定义好了而已). JAVA一样,GTK+中为我们定义好了容器,面板,组件等器件,调用就行了.而他本身又调用了Glib的好多东西.
    GlibcGNU开发的C,libc中好多东西重复.


    glibc libc 

    glibc libc 都是 Linux 下的 C 函数库。 
    libc
    Linux 下的 ANSI C 函数库;glibc Linux 下的 GUN C 函数库。 

    ANSI C
    GNU C 有什么区别呢? 
    ANSI C
    函数库是基本的 C 语言函数库,包含了 C 语言最基本的库函数。这个库可以根据头文件划分为 15 个部分,其中包括: 
    <ctype.h>
    :包含用来测试某个特征字符的函数的函数原型,以及用来转换大小写字母的函数原型;
    <errno.h>
    :定义用来报告错误条件的宏;
    <float.h>
    :包含系统的浮点数大小限制;
    <math.h>
    :包含数学库函数的函数原型;
    <stddef.h>
    :包含执行某些计算 C 所用的常见的函数定义;
    <stdio.h>
    :包含标准输入输出库函数的函数原型,以及他们所用的信息;
    <stdlib.h>
    :包含数字转换到文本,以及文本转换到数字的函数原型,还有内存分配、随机数字以及其他实用函数的函数原型;
    <string.h>
    :包含字符串处理函数的函数原型;
    <time.h>
    :包含时间和日期操作的函数原型和类型;
    <stdarg.h>
    :包含函数原型和宏,用于处理未知数值和类型的函数的参数列表;
    <signal.h>
    :包含函数原型和宏,用于处理程序执行期间可能出现的各种条件;
    <setjmp.h>
    :包含可以绕过一般函数调用并返回序列的函数的原型,即非局部跳转;
    <locale.h>
    :包含函数原型和其他信息,使程序可以针对所运行的地区进行修改。
    地区的表示方法可以使计算机系统处理不同的数据表达约定,如全世界的日期、时间、美元数和大数字;
    <assert.h>
    :包含宏和信息,用于进行诊断,帮助程序调试。
    上述库函数在其各种支持 C 语言的 IDE 中都是有的。 

     GNU C
    函数库是一种类似于第三方插件的东西。由于 Linux 是用 C 语言写的,所以 Linux 的一些操作是用 C 语言实现的,因此,GUN 组织开发了一个 C 语言的库以便让我们更好的利用 C 语言开发基于 Linux 操作系统的程序。不过现在的不同的 Linux 的发行版本对这两个函数库有不同的处理方法,有的可能已经集成在同一个库里了。 

    glibclinux下面c标准库的实现,即GNU C Libraryglibc本身是GNU旗下的C标准库,后来逐渐成为了Linux的标准c库,Linux下原来的标准cLinux libc逐渐不再被维护Linux下面的标准c库不仅有这一个,如uclibcklibc,以及上面被提到的Linux libc但是glibc无疑是用得最多的glibc/lib目录下的.so文件为libc.so.6


    查看当前系统的 glibc 版本的两种方法: 

    1.

    640?wx_fmt=png

    2.

    640?wx_fmt=png

    glibc glib 

    错误观点:glib 前面有个 "g" ,所以认为 glib GNU 的东东;同时认为 glibc glib 的一个子集。 

    其实,glib glibc 基本上没有太大联系,可能唯一的共同点就是,其都是 C 编程需要调用的库而已。 
    glib
    Gtk+ 库和 Gnome 的基础。glib 可以在多个平台下使用,比如 LinuxUnixWindows 等。glib 为许多标准的、常用的 C 语言结构提供了相应的替代物。 

    glib
    GTK+的基础库,它由基础类型、对核心应用的支持、实用功能、数据类型和对象系统五个部分组成,可以在[http://www.gtk.org gtk网站]下载其源代码。是一个综合用途的实用的轻量级的C程序库,它提供C语言的常用的数据结构的定义、相关的处理函数,有趣而实用的宏,可移植的封装和一些运行时机能,如事件循环、线程、动态调用、对象系统等的APIGTK+是可移植的,当然glib也是可移植的,你可以在linux下,也可以在windows下使用它。使用gLib2.0glib2.0版本)编写的应用程序,在编译时应该在编译命令中加入pkg-config --cflags --libs glib-2.0,如:

    gcc pkg-config --cflags --libs glib-2.0 hello.c-o hello
    使用glib最有名的就是GNOME了。



    【官方说明】
    Glib

    GLib is a general-purpose utility library,which provides many useful data types, macros, type conversions, stringutilities, file utilities, a main loop abstraction, and so on. It works on manyUNIX-like platforms, Windows, OS/2 and BeOS. GLib is released under the GNULibrary General Public License (GNU LGPL).
    The general policy of GLib is that all functions are invisibly threadsafe withthe exception of data structure manipulation functions, where, if you have twothreads manipulating the same data structure, they must use a lock tosynchronize their operation.
    GLib is the low-level core library that forms the basis for projects such asGTK+ and GNOME. It provides data structure handling for C, portabilitywrappers, and interfaces for such runtime functionality as an event loop,threads, dynamic loading, and an object system. 



    Glibc 


    Overview: 
    Any Unix-like operating system needs a C library: the library which defines the``system calls'' and other basic facilities such as open, malloc, printf,exit... 
    The GNU C Library is used as the C library in the GNU systems and most systemswith the Linux kernel.
    Project Goals:  
    The GNU C Library is primarily designed to be a portable and high performance Clibrary. It follows all relevant standards including ISO C11 and POSIX.1-2008.It is also internationalized and has one of the most completeinternationalization interfaces known.
    History: 
    The history of Unix and various standards determine much of the interface ofthe C library. In general the GNU C Library supports the ISO C and POSIXstandards. We also try to support the features of popular Unix variants(including BSD and System V) when those do not conflict with the standards.Different compatibility modes (selectable when you compile an application)allow the peaceful coexistence of compatibility support for different varietiesof Unix. 


    【其他说法】 
    libc 实际上是一个泛指。凡是符合实现了 C 标准规定的内容,都是一种 libc
    glibc
    GNU 组织对 libc 的一种实现。它是 unix/linux 的根基之一。
    微软也有自己的 libc 实现,叫 msvcrt
    嵌入式行业里还常用 uClibc ,是一个迷你版的 libc

    640?wx_fmt=jpeg


    展开全文
  • (六) 更新glibc版本

    万次阅读 2018-05-01 14:18:33
    glibc版本太低,造成个别脚本会执行报错,如下错误1、查看系统glibc支持的版本 strings /lib64/libc.so.6 |grep GLIBC_ 可以看到最高只支持2.12版本,所以考虑编译解决这个问题:2、到...2.14.tar.xz这个版本,解压到...

    glibc版本太低,造成个别脚本会执行报错,如下错误

    1、查看系统glibc支持的版本

     strings /lib64/libc.so.6 |grep GLIBC_ 

     

    可以看到最高只支持2.12版本,所以考虑编译解决这个问题:

    2、到http://ftp.gnu.org/gnu/glibc/下载最新glibc版本

    我这里下载了glibc-2.14.tar.xz这个版本,解压到任意目录准备编译

       这里解压到/home/VMdisks/glibc-2.14/

    3、在glibc源码目录建立构建目录,并cd进入构建目录

    [ghui@StuOS glibc-2.14]$ mkdir build  

    [ghui@StuOS glibc-2.14]$ cd build  

    4、运行configure配置,make&& sudo  make install

    1. [ghui@StuOS build]$ ../configure --prefix=/opt/glibc-2.14  

    2. [ghui@StuOS build]$ make -j4   

    3. [ghui@StuOS build]$ sudo make install  

    5、临时修改环境变量

    1. [ghui@StuOS bin]$ export LD_LIBRARY_PATH=/opt/glibc-2.14/lib:$LD_LIBRARY_PATH  

    6、修改软连接。

    这里要注意,更新系统里的链接(我的是/lib64/libc.so.6) 很容易出错,我不清楚有没有更好的办法,一般都是删除旧链接,建立新链接。但删除旧链接后,很多命令直接不能用了,因为此时中不到glibc的库了。这个时候就需要临时指定一个glibc库,方法如下(libc.so改个名以便好以后更新的其他版本区分):

    1. [ghui@StuOS bin]$ cp/opt/glibc-2.14/lib/libc-2.14.so /lib64/libc-2.14.so

    2. [ghui@StuOS bin]$ rm–f /lib64/libc.so.6

    3. [ghui@StuOS bin]$ LD_PRELOAD=/lib64/libc.so.6ln -s /lib64/libc-2.14.so /lib64/libc.so.6

    4. [ghui@StuOS bin]$strings /lib64/libc.so.6 |grep GLIBC


    展开全文
  • 有时我们经常需要查看当前系统的glibc版本,可以这样查看: /lib/libc.so.6 有时:/lib/x86-64-linux/libc.so.6 把这个文件当命令执行一下 为什么这个库可以直接run呢?原来在libc的代码中有一点小手脚: ...
  • glibc安装

    千次阅读 2018-11-27 15:49:00
    2019独角兽企业重金招聘Python工程师标准>>> ...
  • glibc linux 安装包

    热门讨论 2009-03-29 00:22:17
    glibc linux 安装包,可用于gcc 4.1.2的安装。
  • 从上面报错可以看出,程序运行时候,没有找到“GLIBC_2.14”这个版本库,而默认的Centos6.5 glibc版本最高为2.12, 所以需要更新系统glibc库。 glibc是gnu发布的libc库,即c运行库,glibc是linu...
  • 查看自己的glibc版本

    千次阅读 2019-05-29 23:28:54
    查看自己的glibc版本 strings /lib64/libc.so.6 |grep GLIBC_
  • libc、glibc和glib的关系

    千次阅读 2019-07-01 20:15:05
    转自: ... http://nieyong.github.io/wiki_ny/glibc,%20eglibc%E5%92%8C%20glib%E7%9A%84%E5%8C%BA%E5%88%AB.html 【glibc 和 libc】 glibc 和 libc 都是 Linux 下的 C 函数库。 l...
  • Glibc 和 uClibc的区别

    千次阅读 2018-12-25 10:13:37
    Glibc 和 uClibc  最近在搞mips openwrt框架的东西,mipc的GCC工具链为mipsel-openwrt-linux-gcc,所依赖的libc库为:mipsel-openwrt-linux-uclibc-gcc,也就是uclic库,和通常用的glic是有一定区别的。  以下是...
  • glibc

    2017-10-13 13:17:14
    首先从gnu官网下载最新版的glibc,地址http://www.gnu.org/software/libc/
  • Glibc简介

    2012-12-06 09:41:50
    glibc 是gnu发布的libc库,也即c运行库。  glibc是linux系统中最底层的api(应用程序开发接口),  几乎其它任何的运行库都会依赖于glibc。  glibc除了封装linux操作系统所提供的系统服务外,  它本身也...
  • 升级glibc

    千次阅读 2013-07-16 11:38:56
    1.试图运行程序,提示"libc.so.6: version `GLIBC_2.14' not found",原因是系统的glibc版本太低,软件编译时使用了较高版本的glibc引起的: [cpp] view plaincopy [ghui@StuOS bin]$ pwd /var/...
  • glibc中文手册

    2017-10-11 10:40:10
    glibc中文手册,比较清晰 glibc是GNU发布的libc库,即c运行库。glibc是linux系统中最底层的api,几乎其它任何运行库都会依赖于glibcglibc除了封装linux操作系统所提供的系统服务外,它本身也提供了许多其它一些...
  • Glibc库源码2.2.5

    热门讨论 2010-02-07 17:58:58
    Glibc 2 是最新版的 GNU C 函式库。它目前不需修改就可以在 GNU Hurd,Linux i386, m68k, 以及 alpha 系统上执行,而 2.1 版中将加入对 Linux PowerPC, MIPS, Sparc, Sparc 64 与 Arm 等系统的支持。未来将加入...
  • 编译安装glibc

    千次阅读 2017-02-21 11:33:38
    原文地址::... 相关文章 1、编译安装glibc----http://blog.csdn.net/u012927281/article/details/51704855 2、 glibc的编译和调试 ----http://blog.chinaunix.net/uid-207862
  • glibc-2.17.zip

    2019-03-07 17:03:54
    glibc是gnu发布的libc库,即c运行库,glibc是linux系统中最底层的api,几乎其它任何运行库都会依赖于glibcglibc除了封装linux操作系统所提供的系统服务外,它本身也提供了许多其它一些必要功能服务的实现。 很多...
  • 在pwn堆利用中 往往需要根据glibc的版本对exp进行一个改进 本人根据自身的需要对glibc2.23-glibc2.29在malloc.c在堆分配和回收策略上的变化进行一个记录 最主要的是记录报错信息 Glibc2.23 _int_malloc 从...
  • CentOS6.X升级glibc-2.14全套rpm包,安装后glibc由2.12升级到2.14 $ strings /lib64/libc.so.6 | grep GLIBC GLIBC_2.2.5 GLIBC_2.2.6 GLIBC_2.3 GLIBC_2.3.2 GLIBC_2.3.3 GLIBC_2.3.4 GLIBC_2.4 GLIBC_2.5 GLIBC_...

空空如也

1 2 3 4 5 ... 20
收藏数 90,429
精华内容 36,171
关键字:

glibc