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

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

ANSI C 函数库是基本的 C 语言函数库,包含了 C 语言最基本的库函数。这个库可以根据头文件划分为 15 个部分,其中包括:

  1. <ctype.h>:包含用来测试某个特征字符的函数的函数原型,以及用来转换大小写字母的函数原型;
  2. <errno.h>:定义用来报告错误条件的宏;
  3. <float.h>:包含系统的浮点数大小限制;
  4. <math.h>:包含数学库函数的函数原型;
  5. <stddef.h>:包含执行某些计算 C 所用的常见的函数定义;
  6. <stdio.h>:包含标准输入输出库函数的函数原型,以及他们所用的信息;
  7. <stdlib.h>:包含数字转换到文本,以及文本转换到数字的函数原型,还有内存分配、随机数字以及其他实用函数的函数原型;
  8. <string.h>:包含字符串处理函数的函数原型;
  9. <time.h>:包含时间和日期操作的函数原型和类型;
  10. <stdarg.h>:包含函数原型和宏,用于处理未知数值和类型的函数的参数列表;
  11. <signal.h>:包含函数原型和宏,用于处理程序执行期间可能出现的各种条件;
  12. <setjmp.h>:包含可以绕过一般函数调用并返回序列的函数的原型,即非局部跳转;
  13. <locale.h>:包含函数原型和其他信息,使程序可以针对所运行的地区进行修改。
  14. 地区的表示方法可以使计算机系统处理不同的数据表达约定,如全世界的日期、时间、美元数和大数字;
  15. <assert.h>:包含宏和信息,用于进行诊断,帮助程序调试。

上述库函数在其各种支持 C 语言的 IDE 中都是有的。

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

glibc下载地址:http://mirror.hust.edu.cn/gnu/

glibc是linux下面c标准库的实现,即GNU C Library。glibc本身是GNU旗下的C标准库,后来逐渐成为了Linux的标准c库,而Linux下原来的标准c库Linux libc逐渐不再被维护。Linux下面的标准c库不仅有这一个,如uclibc(https://www.uclibc.org/)、klibc,以及上面被提到的Linux libc,但是glibc无疑是用得最多的。glibc在/lib目录下的.so文件为libc.so.6。

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

01 [root@Betty ~]# /lib/libc.so.6
02 GNU C Library stable release version 2.5, by Roland McGrath et al.
03 Copyright (C) 2006 Free Software Foundation, Inc.
04 This is free software; see the source for copying conditions.
05 There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
06 PARTICULAR PURPOSE.
07 Compiled by GNU CC version 4.1.2 20080704 (Red Hat 4.1.2-52).
08 Compiled on a Linux 2.6.9 system on 2013-01-08.
09 Available extensions:
10         The C stubs add-on version 2.1.2.
11         crypt add-on version 2.1 by Michael Glad and others
12         GNU Libidn by Simon Josefsson
13         GNU libio by Per Bothner
14         NIS(YP)/NIS+ NSS modules 0.19 by Thorsten Kukuk
15         Native POSIX Threads Library by Ulrich Drepper et al
16         BIND-8.2.3-T5B
17         RT using linux kernel aio
18 Thread-local storage support included.
19 For bug reporting instructions, please see:
20 <http://www.gnu.org/software/libc/bugs.html>.
21 [root@Betty ~]#

2.

1 [root@Betty ~]# ldd  --version
2 ldd (GNU libc) 2.5
3 Copyright (C) 2006 Free Software Foundation, Inc.
4 This is free software; see the source for copying conditions.  There is NO
5 warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
6 Written by Roland McGrath and Ulrich Drepper.
7 [root@Betty ~]#
 

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 systems with the Linux kernel.

Project Goals:  
The GNU C Library is primarily designed to be a portable and high performance C library. It follows all relevant standards including ISO C11 and POSIX.1-2008. It is also internationalized and has one of the most complete internationalization interfaces known.

History: 
The history of Unix and various standards determine much of the interface of the C library. In general the GNU C Library supports the ISO C and POSIX standards. 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 varieties of Unix.

aaron注: 翻译:

概述:

任何类似Unix的操作系统都需要一个C库:定义“系统调用”的库和其他基本工具,如OPEN、malloc、printf、Exit.GNU C库是GNU系统和大多数Linux内核系统中的C库。

项目目标:

GNU C库主要设计成一个可移植的高性能C库。它遵循所有相关标准,包括ISO C11和POSIX.1-2008。它也是国际化的,并且拥有已知的最完整的国际化接口之一。

历史:

Unix的历史和各种标准决定了C库的大部分接口。一般来说,GNU C库支持ISO C和POSIX标准。当流行的Unix变体(包括BSD和SystemV)与标准不冲突时,我们也尝试支持这些特性。不同的兼容性模式(在编译应用程序时可以选择)允许对不同类型的Unix提供兼容支持的和平共处。

【其他说法】

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

c标准基本库函数:libc、glibc的关系相关推荐

  1. libc glibc glib 的关系

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

  2. Linux 库函数与系统调用的关系与区别

    上周总结了<C 标准库的基础 IO>,其实这些功能函数通过「系统调用」也能实现相应功能.这次文章并不是要详细介绍各系统调用接口的使用方法,而是要深入理解「库函数」与「系统」调用之间的关系和 ...

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

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

  4. 什么是Linux系统调用system call?(Linux内核中设置的一组用于实现各种系统功能的子程序)(区别于标准C库函数调用)核心态和用户态的概念、中断的概念、系统调用号、系统调用表

    文章目录 什么是系统调用? 为什么要用系统调用? 系统调用是怎么工作的? 如何使用系统调用? _syscall*()是什么? errno是什么? 调用性能问题 Linux系统调用列表 进程控制 文件系 ...

  5. 记一次libusb库函数“libusb_bulk_transfer”的调用关系追踪

    记一次libusb库函数"libusb_bulk_transfer"的调用关系追踪 libusb库内部调用关系 USB设备文件节点 usb驱动层调用关系 usb core HCD ...

  6. Linux:库函数:libc: glibc

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

  7. 我自己关于C语言,编译器,标准库,GUN glibc,CRT ,API之类的理解。

    先声明,只是我自己看了一些东东的想法. 因为以前这一套东东太缠绕人了. C语言,是一种语言标准,和它对照的是C++,JAVA,BASIC,FORTRAN,PASCAL等等概念.它定义的是自己一套适用于 ...

  8. linux gcc 与 glibc 的关系 glibc版本查看

    glibc是什么,以及与gcc的关系? glibc是gnu发布的libc库,也即c运行库.glibc是linux 系统中最底层的api(应用程序开发接口),几乎其它任何的运行库都会倚赖于glibc.g ...

  9. 标准C语言库 Glibc 2.15

    http://www.oschina.net/p/glibc Glibc 是提供系统调用和基本函数的 C 库,比如open, malloc, printf等等.所有动态连接的程序都要用到它. Glib ...

最新文章

  1. 怎么将jenkins打包后的war自动部署到jetty上?
  2. 开源依旧:再次分享一个进销存系统
  3. “突然忘记要干啥”有了科学解释!两组神经元在作祟,南大校友一作 | 哈佛医学院多伦多...
  4. ios wkweb设置图片_iOS 之 WKWebView自适应高度获取网络图片
  5. python打开中文文本utf-8用不了_关于Python文档读取UTF-8编码文件问题
  6. python控制结构实训_Python 控制结构
  7. IOS开发之Cocoa编程—— NSUndoManager
  8. bind 0.0.0.0的作用是什么呢?
  9. 『软件工程12』软件工程实践方法——软件测试
  10. OSChina 周四乱弹 ——妹子喜欢的是程序员 这是标准……
  11. Mongotemplate mongodb的各种操作 模糊查询 精确查询
  12. 使用java实现数字滤波器
  13. 计算机考研去哪个城市,2019计算机考研:考研热门城市院校排名
  14. mysql binlog 日志
  15. java取文本首位_java – 从文本文件中读取的第一个字符:[复制]
  16. 目前最全的动画名称中英对照表
  17. 【GitHub通过ssh方法下载详细配置过程】
  18. MIS--信息管理系统
  19. 上帝的答复(外两篇)
  20. CTF-WEB小技俩 ——合天网安实验室学习笔记

热门文章

  1. easyDarwin--开源流媒体实现
  2. 第五十三篇、OC利用AFN上传视频到服务器
  3. 用cookie实现localstorage功能
  4. Android超简单的进度条源码
  5. setTimeOut与 setInterval区别
  6. ASP.NET中 分析器错误:发现不明确的匹配
  7. opengl载入多个3ds模型失败记
  8. Python入门图文解说
  9. SSRS:使用SQL2008教程学习Reporting Services之数据库AdventureWorks2008问题_学习笔记1
  10. 基于R语言的时间序列分析预测