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所用的常見的函數定義;原型
標準 I/O (<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操做系統的程序。其實咱們能夠把它理解爲相似於Qt是一個C++的第三方函數庫同樣。
不過如今的不一樣的Linux的發行版本對這兩個函數庫有不一樣的處理方法,有的可能已經集成在同一個庫裏了,例如Ubuntu就只有glibc。