转自:
http://my.oschina.net/moooofly/blog/126260
http://nieyong.github.io/wiki_ny/glibc, eglibc和 glib的区别.html
【glibc 和 libc】
glibc 和 libc 都是 Linux 下的 C 函数库。
libc 是 Linux 下的 ANSI C 函数库;glibc 是 Linux 下的 GUN C 函数库。
ANSI C 和 GNU C 有什么区别呢?
- :包含用来测试某个特征字符的函数的函数原型,以及用来转换大小写字母的函数原型;
- :定义用来报告错误条件的宏;
- :包含系统的浮点数大小限制;
- :包含数学库函数的函数原型;
- :包含执行某些计算 C 所用的常见的函数定义;
- :包含标准输入输出库函数的函数原型,以及他们所用的信息;
- :包含数字转换到文本,以及文本转换到数字的函数原型,还有内存分配、随机数字以及其他实用函数的函数原型;
- :包含字符串处理函数的函数原型;
- :包含时间和日期操作的函数原型和类型;
- :包含函数原型和宏,用于处理未知数值和类型的函数的参数列表;
- :包含函数原型和宏,用于处理程序执行期间可能出现的各种条件;
- :包含可以绕过一般函数调用并返回序列的函数的原型,即非局部跳转;
- :包含函数原型和其他信息,使程序可以针对所运行的地区进行修改。
- 地区的表示方法可以使计算机系统处理不同的数据表达约定,如全世界的日期、时间、美元数和大数字;
- :包含宏和信息,用于进行诊断,帮助程序调试。
glibc是linux下面c标准库的实现,即GNU C Library。glibc本身是GNU旗下的C标准库,后来逐渐成为了Linux的标准c库,而Linux下原来的标准c库Linux libc逐渐不再被维护。Linux下面的标准c库不仅有这一个,如uclibc、klibc,以及上面被提到的Linux libc,但是glibc无疑是用得最多的。glibc在/lib目录下的.so文件为libc.so.6。
【glibc 和 glib】
glib 是 Gtk+ 库和 Gnome 的基础。glib 可以在多个平台下使用,比如 Linux、Unix、Windows 等。glib 为许多标准的、常用的 C 语言结构提供了相应的替代物。
glib是GTK+的基础库,它由基础类型、对核心应用的支持、实用功能、数据类型和对象系统五个部分组成,可以在[http://www.gtk.org pkg-config --cflags --libs glib-2.0
,如:
gccpkg-config --cflags --libs glib-2.0
hello.c -o hello
使用glib最有名的就是GNOME了。
【其他说法】
libc 实际上是一个泛指。凡是符合实现了 C 标准规定的内容,都是一种 libc 。
glibc 是 GNU 组织对 libc 的一种实现。它是 unix/linux 的根基之一。
微软也有自己的 libc 实现,叫 msvcrt 。
嵌入式行业里还常用 uClibc ,是一个迷你版的 libc 。
libc, glibc在一个层次,都是C的标准实现库,是操作系统级别的基石之一。
glib是用C写的一些utilities,即C的工具库,和libc/glibc没有关系。