当前位置: 首页 > 工具软件 > uClibc > 使用案例 >

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

山寒
2023-12-01

glibc和libc

glibc和libc都是Linux下的C函数库,libc是Linux下的ANSI C的函数库;glibc是Linux下的GUN C的函数库;GNU C是一种ANSI C的扩展实现。ANSI C是基本的C语言函数库,包含了C语言最基本的库函数。这个库可以根据头文件划分为15个部分,其中包括:
<asset.h>,<ctype.h>,<errno.h>,<float.h>,<limits.h>,<locale.h>,<math.h>,<setjmp.h> ,<signal.h>,<stdarg.h>,<stddef.h>,<stdlib.h>,<stdio.h>,<string.h>,<time.h>

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

uClibc

uClibc 是一个面向嵌入式Linux系统的小型的C标准库。最初uClibc是为了支持uClinux而开发,这是一个不需要内存管理单元(MMU)的Linux版本。uClibc比一般用于Linux发行版的C库GNU C Library (glibc)要小得多, uClibc专注于嵌入式Linux。很多功能可以根据空间需求进行取舍。

Newlib

Newlib是一个面向嵌入式系统的C运行库。最初是由Cygnus Solutions收集组装的一个源代码集合,取名为newlib,现在由Red Hat维护,目前的最新的版本是2.1.0。对于与GNU兼容的嵌入式C运行库,Newlib并不是唯一的选择,但是从成熟度来讲,newlib是最优秀的。newlib可移植性强,具有可重入特性、功能完备等特点,已广泛应用于各种嵌入式系统中。Cygwin目前使用Newlib来作为它的C标准库。

 类似资料: