日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 综合教程 >内容正文

综合教程

基础概念——C标准、C运行库和glibc

發(fā)布時(shí)間:2024/8/26 综合教程 62 生活家
生活随笔 收集整理的這篇文章主要介紹了 基础概念——C标准、C运行库和glibc 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

C標(biāo)準(zhǔn):
C 標(biāo)準(zhǔn)主要由兩部分組成,一部分描述C的語(yǔ)法,另一部分描述C標(biāo)準(zhǔn)庫(kù)(描述了一些C標(biāo)準(zhǔn)函數(shù)的原型,但是不提供實(shí)現(xiàn))。
C標(biāo)準(zhǔn)庫(kù)定義了一組標(biāo)準(zhǔn)頭文件,每個(gè)頭文件中包含一些相關(guān)的函數(shù)、變量、類型聲明和宏定義。

常見的C標(biāo)準(zhǔn)就是ANSI C;美國(guó)國(guó)家標(biāo)準(zhǔn)協(xié)會(huì);
為了提高C語(yǔ)言的開發(fā)效率,C標(biāo)準(zhǔn)定義了一系列常用的函數(shù),稱為C標(biāo)準(zhǔn)庫(kù)函數(shù)。
應(yīng)用程序開發(fā)者可以包含這些標(biāo)準(zhǔn)函數(shù)的頭文件,來(lái)調(diào)用這些C標(biāo)準(zhǔn)函數(shù),來(lái)開發(fā)應(yīng)用,這樣就可以屏蔽平臺(tái)的差異;



C運(yùn)行庫(kù):
C標(biāo)準(zhǔn)庫(kù)函數(shù)的實(shí)現(xiàn)留給了各個(gè)系統(tǒng)平臺(tái);
這個(gè)實(shí)現(xiàn)就是C運(yùn)行時(shí)庫(kù)(C Run Time Libray) ,簡(jiǎn)稱CRT
C運(yùn)行庫(kù),是和平臺(tái)相關(guān)的,即和操作系統(tǒng)相關(guān)的;
C運(yùn)行庫(kù)(CRT)從某種程度上來(lái)講是C語(yǔ)言的程序和不同操作系統(tǒng)平臺(tái)之間的抽象層;//接口是統(tǒng)一的標(biāo)準(zhǔn),實(shí)現(xiàn)由各個(gè)平臺(tái)自己實(shí)現(xiàn);
Linux和Windows平臺(tái)下的兩個(gè)主要C語(yǔ)言運(yùn)行庫(kù)分別為
glibc(GNU C Library)和MSVCRT(Microsoft Visual C Run-time)。

值得注意的是,像線程操作這樣的功能并不是標(biāo)準(zhǔn)的C語(yǔ)言運(yùn)行庫(kù)的一部分,
但是glibc和MSVCRT都包含了線程操作的庫(kù)函數(shù)。所以glibc和MSVCRT事實(shí)上是標(biāo)準(zhǔn)C語(yǔ)言運(yùn)行庫(kù)的超集,
它們各自對(duì)C標(biāo)準(zhǔn)庫(kù)進(jìn)行了一些擴(kuò)展。
也就是說(shuō)CRT實(shí)際上包含兩部分,一部分實(shí)現(xiàn)是基于C標(biāo)準(zhǔn)庫(kù)來(lái)的,一部分實(shí)現(xiàn)是根據(jù)平臺(tái)自身開發(fā)的庫(kù)
某種程度上是C運(yùn)行庫(kù)是C標(biāo)準(zhǔn)庫(kù)的一個(gè)擴(kuò)展庫(kù),加了很多C標(biāo)準(zhǔn)庫(kù)所沒(méi)有的與平臺(tái)相關(guān)的或者不相關(guān)的庫(kù)接口函數(shù)。

要在一個(gè)平臺(tái)上支持C語(yǔ)言,不僅要實(shí)現(xiàn)符合平臺(tái)的C編譯器,還要實(shí)現(xiàn)C標(biāo)準(zhǔn)庫(kù),這樣的實(shí)現(xiàn)才算符合C標(biāo)準(zhǔn)。



glibc:
這里以linux系統(tǒng)為例進(jìn)行討論;在Linux平臺(tái)上最廣泛使用的C運(yùn)行庫(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ǔ)。
GNU C:GNU C實(shí)際上是GNU C庫(kù),又稱為glibc,即c運(yùn)行庫(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
多線程的C程序依賴于libpthread.so
libc有時(shí)時(shí)專指libc.so這個(gè)庫(kù)文件,而說(shuō)glibc時(shí)指的是glibc提供的所有庫(kù)文件

值得注意的是,像線程操作這樣的功能并不是C標(biāo)準(zhǔn)庫(kù)的一部分(也就是說(shuō)C標(biāo)準(zhǔn)沒(méi)有定義線程操作相關(guān)的函數(shù)原型)
但是glibc和MSVCRT(Windows系統(tǒng)下的C運(yùn)行庫(kù))都包含了線程操作的庫(kù)函數(shù)。
比如glibc有一個(gè)可選的pthread庫(kù)中的pthread_create()函數(shù)可以用來(lái)創(chuàng)建線程;
而MSVCRT中可以使用_beginthread()函數(shù)來(lái)創(chuàng)建線程。
所以glibc和MSVCRT事實(shí)上是標(biāo)準(zhǔn)C語(yǔ)言運(yùn)行庫(kù)的超集它們各自對(duì)C標(biāo)準(zhǔn)庫(kù)進(jìn)行了一些擴(kuò)展

glibc的發(fā)布版本主要由兩部分組成,一部分是頭文件,比如stdio.h、stdlib.h等,它們往往位于/usr/include;
另外一部分則是庫(kù)的二進(jìn)制文件部分。二進(jìn)制部分主要的就是C語(yǔ)言標(biāo)準(zhǔn)庫(kù),它有靜態(tài)和動(dòng)態(tài)兩個(gè)版本。
動(dòng)態(tài)的標(biāo)準(zhǔn)庫(kù)我們及在本書的前面章節(jié)中碰到過(guò)了,它位于/lib/libc.so.6;而靜態(tài)標(biāo)準(zhǔn)庫(kù)位于/usr/lib/libc.a。

事實(shí)上glibc除了C標(biāo)準(zhǔn)庫(kù)之外,還有幾個(gè)輔助程序運(yùn)行的運(yùn)行庫(kù),這幾個(gè)文件可以稱得上是真正的“運(yùn)行庫(kù)”。
它們就是/usr/lib/crt1.o、/usr/lib/crti.o和/usr/lib/crtn.o。

比如我們可以在不同的操作系統(tǒng)平臺(tái)下使用fread來(lái)讀取文件,
而事實(shí)上fread在不同的操作系統(tǒng)平臺(tái)下的實(shí)現(xiàn)是不同的,
但作為運(yùn)行庫(kù)的使用者我們不需要關(guān)心這一點(diǎn)。
雖然各個(gè)平臺(tái)下的C語(yǔ)言運(yùn)行庫(kù)提供了很多功能,但很多時(shí)候它們畢竟有限,
比如用戶的權(quán)限控制、操作系統(tǒng)線程創(chuàng)建等都不是屬于標(biāo)準(zhǔn)的C語(yǔ)言運(yùn)行庫(kù)。
于是我們不得不通過(guò)其他的辦法,諸如繞過(guò)C語(yǔ)言運(yùn)行庫(kù)直接調(diào)用操作系統(tǒng)API或使用其他的庫(kù)。



這里講講GNUGCC:
GNU軟件包列表:該系統(tǒng)的基本組成包括GNU編譯器套裝(GCC)、GNU的C庫(kù)(glibc)、以及GNU核心工具組(coreutils)、(GDB)。

GCC原名GNU C Compiler,后來(lái)逐漸支持更多的語(yǔ)言編譯(C++、Fortran、Pascal、Objective-C、Java、Ada、Go等),
所以變成了GNU Compiler Collection(GNU編譯器套裝

總結(jié)

以上是生活随笔為你收集整理的基础概念——C标准、C运行库和glibc的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国产高清黄色 | 国产粉嫩在线 | wwwxxx欧美 | av男人天堂网 | 污片在线免费观看 | 波多野结衣福利视频 | 天堂中文视频在线 | 真实人妻互换毛片视频 | 日日夜夜91 | 美女脱裤子打屁股 | www四虎精品视频免费网站 | 国产人成 | 免费看久久 | 枫可怜av| 日韩一区二区欧美 | 秋葵视频在线 | 亚洲欧美日韩国产一区二区三区 | 欧美日韩一区二区三区国产精品成人 | 国产精品.xx视频.xxtv | 国产欧美一级片 | 在线一区av | 在线成年人视频 | 99久久国产热无码精品免费 | 久久国产乱子伦免费精品 | 一级片高清 | 精品在线小视频 | 色偷偷噜噜噜亚洲男人 | 91精品一区二区三区综合在线爱 | 一区二区三区四区亚洲 | www.自拍偷拍 | 超碰在线免费 | 97在线视频免费 | 黄色一级大片免费看 | 老头糟蹋新婚少妇系列小说 | 日韩欧美中文字幕在线视频 | 香蕉视频传媒 | 黑人巨大精品欧美一区二区蜜桃 | 欧美黄一级 | 日本黄色免费观看 | 国产69精品久久久久777 | 一区二区三区在线播放 | 好男人影视www | 欧美 另类 交 | 精品国产乱码久久久久久图片 | 在线a网站 | 亚洲伦理一区 | 怡红院一区二区 | www.天堂av.com | 在线观看特色大片免费网站 | 久久久久久一级片 | 日本高清www免费视频 | 黑巨茎大战欧美白妞 | 天堂在线观看 | 91久久精品夜夜躁日日躁欧美 | 伊人免费在线观看高清版 | 少妇高潮一区二区三区在线 | 好吊色视频988gao在线观看 | 人体写真 福利视频 | 波多野结衣办公室双飞 | 一曲二曲三曲在线观看中文字幕动漫 | 亚洲人无码成www久久 | 97色干| 女女同性被吸乳羞羞 | 欧美中文字幕 | 久草视频手机在线观看 | 国产精品成人一区二区网站软件 | 小视频在线看 | 亚洲精品ww | 97超碰人人干 | 久久久看片 | 日韩一区二区a片免费观看 伊人网综合在线 | 精品国产欧美日韩 | 91超碰在线播放 | 国产精品久久久久久久专区 | 久久亚洲国产精品 | 成人特级片 | 丁香激情综合 | 欧美午夜激情视频 | 国产精选一区 | 操操操影院 | 小箩莉末发育娇小性色xxxx | 综合网在线观看 | www.av网址| 97久久综合| 亚洲精品一区二区三区影院忠贞 | 李宗瑞91在线正在播放 | 亚洲区欧美 | 大肉大捧一进一出好爽动态图 | 另类小说一区二区 | 日本系列第一页 | 欧美性大战久久久久久久蜜桃 | 熟女少妇精品一区二区 | 好吊视频一区二区三区 | av网站入口| 土耳其xxxx性hd极品 | 国产美女菊爆在线播放APP | 麻豆视频在线看 | 国产999在线观看 | 亚洲操 |