C 函數庫 (libc,glibc,uClibc,newlib)


glibc

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標准庫。

 

參考文獻:

[1] GNU C和ANSI C函數庫的區別. http://m.oschina.net/blog/357890

[2] newlib的編譯和使用. http://blog.csdn.net/qb_2008/article/details/8228061

[3] newlib. 百度百科

http://baike.baidu.com/link?url=I82KV6bfXuZRqkGoD6ss9oumgldJy2uLN3K0-qXU_Oi5VVb-RBsCNosXaAb1UiCL3JAP56WAALA-dPvkwog5Oa

[4] glibc, eglibc和 glib的區別.

http://nieyong.github.io/wiki_ny/glibc,%20eglibc%E5%92%8C%20glib%E7%9A%84%E5%8C%BA%E5%88%AB.html

[5] GNU C 函數庫 (glibc,uClibc,newlib). http://blog.sina.com.cn/s/blog_44fa8a0e0100oo4w.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM