C标准库和glibc(C运行库)的关系
C 標(biāo)準(zhǔn)主要由兩部分組成,一部分描述C的語法,另一部分描述C標(biāo)準(zhǔn)庫(kù)。C標(biāo)準(zhǔn)庫(kù)定義了一組標(biāo)準(zhǔn)頭文件,每個(gè)頭文件中包含一些相關(guān)的函數(shù)、變量、類型聲明和宏定義。要在一個(gè)平臺(tái)上支持C語言,不僅要實(shí)現(xiàn)C編譯器,還要實(shí)現(xiàn)C標(biāo)準(zhǔn)庫(kù),這樣的實(shí)現(xiàn)才算符合C標(biāo)準(zhǔn)。不符合C標(biāo)準(zhǔn)的實(shí)現(xiàn)也是存在的,例如很多單片機(jī)的C 語言開發(fā)工具中只有C編譯器而沒有完整的C標(biāo)準(zhǔn)庫(kù).
?
在Linux平臺(tái)上最廣泛使用的C函數(shù)庫(kù)是glibc,其中包括C標(biāo)準(zhǔn)庫(kù)的實(shí)現(xiàn),也包括所有系統(tǒng)函數(shù)。幾乎所有C程序都要調(diào)用glibc的庫(kù)函數(shù),所以glibc是Linux平臺(tái)C程序運(yùn)行的基礎(chǔ)。glibc提供一組頭文件和一組庫(kù)文件,最基本、最常用的C標(biāo)準(zhǔn)庫(kù)函數(shù)和系統(tǒng)函數(shù)在libc.so庫(kù)文件中,幾乎所有C程序的運(yùn)行都依賴于libc.so,有些做數(shù)學(xué)計(jì)算的C程序依賴于libm.so,以后我們還會(huì)看到多線程的C程序依賴于libpthread.so。以后我說libc時(shí)專指libc.so這個(gè)庫(kù)文件,而說glibc時(shí)指的是glibc提供的所有庫(kù)文件.
glibc并不是Linux平臺(tái)唯一的基礎(chǔ)C函數(shù)庫(kù),也有人在開發(fā)別的C函數(shù)庫(kù),比如適用于嵌入式系統(tǒng)的uClibc.
?
?
?
https://www.zhihu.com/question/49945649
總結(jié)
以上是生活随笔為你收集整理的C标准库和glibc(C运行库)的关系的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Linux 下系统调用的三种方法
- 下一篇: c标准基本库函数:libc、glibc的