您的位置:首页 > 运维架构 > Linux

linux操作系统下的glibc库介绍

2012-11-23 12:38 176 查看

GLIBC 的内容

  由于 glibc 囊括了几乎所有的 UNIX 通行的标准,可以想见其内容包罗万象。而就像其他的 UNIX 系统一样,其内含的档案群分散于系统的树状目录结构中,像一个支架一般撑起整个作业系统。以 glibc-2.2 为例,这些档案群主要包括:

  

1.分享函式库群:

  这是 glibc 的主体,分布 /lib 与 /usr/lib 中,包括 libc 标准 C 函式库、libm 数学函式库、libcrypt 加密与编码函式库、libdb 资料库函式库、libpthread 行程多执行绪函式库、libnss 网路服务函式库 .... 等等。这些都是可分享函式库,档名都以 .so 做结尾。其中,/lib/ld*.so
是程式与函式库连结的工具。有的用于程式编译时将程式与函式库内的函式物件连结,在只支援静态连结的系统中,此连结方式就是直接将所需的物件自函式库中抽出?砼c程式的可执行档相连,而在支援可分享函式库的系统中,在程式编译时期的连结只是在执行档中纪录了那些函式物件是存在那个函式库档案中,等该程式开始执行时,则由另一个负责动态连结的
ld*.so 将所需的函式库连结好?K执行。

  一般而言,负责程式编译时期的连结器档名为 ld. so,而负责程式执行时的动态连结器档名为 ld- .so 或 ld-linux. so (在 GNU/Linux 系统中)。

  

2.函式库标头档与程式开发元件:

  这些标头档档名都以 .h 为结尾,全部在 /usr/include/ 底下,其内容为函式库中各函式的宣告、巨集定义、资料物件的型别 .... 等等,这些都是程式开发者不可或缺的部分。

  除此之外,在 /usr/lib/ 中还有若干 .o 与 .a 的档案,这些是程式编译过程中要连结为可执行档时所需的元件,有些则为上述可分享函式库的静态连接版本,而后者可以在某些特殊场合下需要静态连结程式时使用。

  3.

函式库说明文件:

  在一般的 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* ,本文中有许多素材就是取自这些文件的内容。

 

4.字集转换模组与区域化资料库:

  这些是与程式国际化与本土化相关的部分,主要可分成四大块: /usr/lib/gconv/ 内含大量的字集转换模组,大部分是各种字集及编码方式与系统的基底字集之间的 转换。第二块是 /usr/lib/locale,内含以系统基底字集写成的区域化资料库 (locale),像是 LC_CTYPE、LC_TIME .... 等等。第三块是

  /usr/share/locale/,内含可跨平台使用的区域化资料,主要是各应用程式的信息翻译部分。而最后一块是 /usr/share/i18n/,其内容是各区域化资料库的原始码,以及系统支援的内码对应表 .... 等等。

 

5.时区资料库:

  主要分别在 /usr/share/zoneinfo 底下,内含世界各地时区与格林威治时间的转换资料。

  其他工具程式与设定档:

  工具程式分?言 /usr/bin 与 /sbin 底下,包括一些转码与区域化资料库相关的程式如 iconv, locale, localedef 等,以及用?盹@示应用程式与可分享函式库相依关系的 ldd, 还有可分享函式库搜寻路?焦芾沓淌 ldconfig .... 等。而其相关的设定档则位于 /etc 底下。

  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: