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 的发行版本对这两个函数库有不同的处理方法,有的可能已经集成在同一个库里了。

GNU标准下的C标准库    glibc    逐渐演变为linux下的标准C库
linux下原来的标准C库    libc    逐渐不再维护

Linux下面的标准c库有uclibc、klibc,libc,但是glibc无疑是用得最多的。glibc在/lib目录下的.so文件为libc.so.6。

查看当前系统的 glibc 版本的两种方法:
/lib/libc.so.6
ldd --version

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

gcc pkg-config --cflags --libs glib-2.0 hello.c -o hello

使用glib最有名的就是GNOME了。

什么是Xlib?
The X Library是X Window程式最低階的API,如果拿來和Windows 比較起來,Xlib 就和Windows APIs(或稱 Windows SDK)一樣,算是最接近 X Server的程序設计介面,它只提供最基本的绘图和訊息事件的處理。

什么是GLib?  
   GLib库提供了一系列函数(functions)和定义(definitions),在设计GDK和GTK程序时很有用.它提供了一些标准c函数库(standard libc)的替代函数,比如malloc,但在其他的系统上使用时有很多问题.

什么是GDK?  
   GDK是标准Xlib函数调用的一个基本封装(wrapper),如果你对Xlib很熟悉,就不需要来重新熟悉绝大多数的GDK函数.所有的函数都是为了提供一个方便直观的风格来访问Xlib函数库.另外,自从GDK使用GLib,在多平台上使用时,GDK变得更加的方便和安全.

Motif  
Motif 為目前最主要的 GUI Toolkit,它便是以Xt的widget 概念為基礎,提供外觀和Microsoft Windows 95極為類似的圖形介面。Motif 是由 Open Group (以前叫 Open Software Foundation) 所出產。
不過現在的 Motif 已經不只是單純的GUI Toolkit了,它也包含了一個Motif window manager(窗口管理器)用來管理X Clients (X Applications)。

【其他说法】

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

【yasi】

libc, glibc在一个层次,都是C的标准实现库,是操作系统级别的基石之一。
glib是用C写的一些utilities,即C的工具库,和libc/glibc没有关系。

一个Gnome程序是使用多个库组成的层次结构:

GNOME (GNU Network Object Model Environment)是以GTK為基礎的圖形介面函式庫。和KDE一樣,GNOME 也是以建立一個完整、友善的圖形使用環境為目標,並提供GNOME相關的軟體。
   Gnome库在最高层,包括帮助例程,类和特殊的widget,并为应用程序提供一个基础架构。
   第二层是GTK,它是GTK+库的一部分。这个库提供了基本的工具包和widget来创建GUI应用程序。大多数GUI是直接用GTK编写的。GTK同时为Gnome库提供了一个功能强大的对象系统。
   再下一层是GDK,它简单的对X函数库进行了包装,只有在我们进行特殊绘画或设置窗口的特殊属性的时候才会用到它.  
   最下面一层是Glib,它是C的一个实用程序库,包括可移植性和一些实用程序功能,以及一些容器类,例如:链表,可变数组,变长字符串,HASH西表),缓存,一个事件循环和其他有用的结构。

libc-glibc相关推荐

  1. libc glibc glib 的关系

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

  2. C 函数库 (libc,glibc,uClibc,newlib)

    glibc glibc和libc都是Linux下的C函数库,libc是Linux下的ANSI C的函数库:glibc是Linux下的GUN C的函数库:GNU C是一种ANSI C的扩展实现.ANSI ...

  3. Linux:库函数:libc: glibc

    文章目录 Note 手册的使用 源代码阅读问题 概述 glibc 编译配置 glibc 编译参数调整 版本信息 名词解释 csu nptl sysdeps 组织架构 每个函数都是一个单独的文件 一般结 ...

  4. libc、glibc和glib的关系

    转自: http://my.oschina.net/moooofly/blog/126260 http://nieyong.github.io/wiki_ny/glibc,%20eglibc%E5%9 ...

  5. C函数库(libc、glibc、uClibc、newlib)

    libc.glibc.uClibc.newlib glibc和libc uClibc Newlib glibc和libc glibc和libc都是Linux下的C函数库,libc是Linux下的ANS ...

  6. linux权限整改,Linux底层函数库glibc漏洞核查整改指引

    一. 漏洞概要 近日,Linux底层函数glibc 的 DNS 客户端解析器被发现存在基于栈的缓冲区溢出漏洞.攻击者可借助特制的域名. DNS 服务器或中间人攻击利用该漏洞执行任意代码,甚至控制整个系 ...

  7. 如何升级libc.so.6以及升级后引发的灾难

    什么是libc/glibc?,他们有啥用? 不知道的话,你可以点右上角的×了,你还是先思考一下为什么要升级?一定要升级吗?没别的办法了? glibc是GNU发布的libc库,即c运行库.glibc是l ...

  8. 海思3536:kernel编译和mpp_single编译过程报错及解决方法

    ### 1.编译kernel 1.1 cd kernel/linux-3.10.y 1.2 cp arch/arm/configs/hi3536_full_defconfig.config 1.3 m ...

  9. 为何把日志打印到控制台很慢?

    原文 在容器打印日志到控制台阻塞的排障的时候看到一个观点: 把日志打印到控制台要比打印到文件慢,而且是非常慢. log4j2和logback的两个issue官方也提到了这一点(见LOG4J2-2239 ...

  10. Buildroot用户指南

    第一章        关于Buildroot Buildroot是一个包含Makefile和修补程序[patch]的集合,这个集合可以使你很容易的为你的目标构建交叉工具链[cross-compilat ...

最新文章

  1. Android Camera架构分析
  2. (java ee,Eclipse J2EE最新版官方下载(Eclipse for Java EE Developers)
  3. Wireshark安装和基本使用
  4. 老男孩爬虫实战密训课第一季,2018.6,初识爬虫训练-实战1-爬取汽车之家新闻数据...
  5. Tomcat 5 5 JNDI Resource 配置
  6. 美团点评技术年货:900+页电子书,覆盖前端、后台、大数据、算法……(附下载链接)...
  7. mysql binlog解析 c_解析MYSQL BINLOG二进制格式(9)--infobin解析binlog帮助文档
  8. 有关 !DOCTYPE HTML
  9. mysql 查询一个数据库里面有多少张数据表
  10. Maven模块聚合与继承
  11. html ztree选中状态,ztree-select.html
  12. 雷军在金山的奋斗历程(我的金山我的青春)
  13. 计算机内存条如何区分频率,什么是内存条的频率? 怎么看内存条频率?
  14. CSDN外链解决方法 (2022-07-28测试可用)
  15. OKR实施方法——关于思路和流程的思考
  16. 《为何家会伤人》| 不懂爱的误区和真相
  17. 计算机节能认证技术规范产品目录,CQC节能产品认证目录.doc
  18. 第十四届蓝桥杯三月真题刷题训练——第 27 天
  19. 用JAVA写一个古诗生成器_简简单单用java写一个营销号话术生成器
  20. 团体的证件类型三证合一

热门文章

  1. c语言规定对使用的变量必须,C语言为什么要规定对所用到的变量要“先定义,后使用”...
  2. 语音识别(一):speech-recognition的实验案例
  3. mysql动态分区_MySQL动态创建分区
  4. Matlab-创建文字云
  5. matlab 基于GUI的PID研究
  6. 解决AttributeError: module ‘cv2.cv2‘ has no attribute ‘estimateRigidTransform‘
  7. Docker挂载主机目录Docker访问出现Permission denied的解决办法
  8. 面向特定专业领域的计算机,大学计算机文化基础考试题(本科)基础知识部分
  9. 计算机应用基础白雪梅,白雪|
  10. java接收的文件转换成临时文件_Android中怎样使用createTempFile实现将字节数据创建到临时文件并转换成FileOutputStream和FileInputStream...