红联Linux门户
Linux帮助

glibc和libc到底有什么区别

发布时间:2008-08-25 21:15:48来源:红联作者:Entertr
glibc和libc都是Linux下的C函数库,那么到底有什么区别呢?

见到Linux下好多的库函数,曾经令我困惑,其实他们是有章可循的。

libc是Linux下的ANSI C的函数库;

glibc是Linux下的GUN C函数库;

ANSI C和GNU C有什么区别呢?

ANSI C是基本的C语言函数库,包含了C语言最基本的库函数。这个库可以根据 头文件划分为 15 个部分,其中包括:字符类型 ()、错误码 ()、 浮点常数 ()、数学常数 ()、标准定义 ()、 标准 I/O ()、工具函数 ()、字符串操作 ()、 时间和日期 ()、可变参数表 ()、信号 ()、 非局部跳转 ()、本地信息 ()、程序断言 () 等等。这在其他的C语言的IDE中都是有的。

而GNU C函数库是一种类似于第三方插件的东西,由于Linux是用C语言写的,所以Linux的一些操作是用C语言实现的,所以GNU组织开发了一个C语言的库用于我们更好的利用C语言开发基于Linux操作系统的程序。其实我们可以把它理解为类似于Qt是一个C++的第三方函数库一样。

不过现在的不同的Linux的发行版本对这两个函数库有不同的处理方法,有的可能已经集成在同一个库里了,例如我用的Ubuntu就只有glibc。
文章评论

共有 1 条评论

  1. wpdzyx 于 2008-12-20 23:50:01发表:

    好像不是这么一回事,我用glade生成的程序,编译时提时**Error**: You must have `glib' installed.
    You can get it from: ftp://ftp.gtk.org/pub/gtk

    但是安装时又提示:
    正在读取软件包列表... 完成
    正在分析软件包的依赖关系树
    读取状态信息... 完成
    注意,我选了 libc6 而非 glibc-2.7-1
    libc6 已经是最新的版本了。
    共升级了 0 个软件包,新安装了 0 个软件包,要卸载 0 个软件包,有 1 个软件未被升级。


    这又是为行什么呢