c標準基本庫函式:libc、glibc和glib的關係
【glibc 和 libc】
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>:包含巨集和資訊,用於進行診斷,幫助程式除錯。
GNU C 函式庫是一種類似於第三方外掛的東西。由於 Linux 是用 C 語言寫的,所以 Linux 的一些操作是用 C 語言實現的,因此,GUN 組織開發了一個 C 語言的庫
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。
1.
01 |
[[email protected]
~] #
/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 |
|