日韩性视频-久久久蜜桃-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ò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 三级理论电影 | 自拍偷拍色综合 | 亚洲成人高清在线 | 西西人体做爰大胆gogo直播 | 久久这里 | 少妇人妻真实偷人精品视频 | 日韩av免费网址 | 影音先锋制服 | 欧美国产一区二区在线观看 | 李宗瑞91在线正在播放 | 可以看黄色的网站 | 精品无码免费视频 | 精品久久网 | 99re这里都是精品 | 五月天久久久 | 亚洲中文字幕无码一区二区三区 | 伊人性视频 | 奇米四色在线视频 | 日韩一区二区三区精品 | 黄色资源网 | av毛片在线看 | 99riav在线 | 美女视频黄的免费 | 强伦人妻一区二区三区 | 久久午夜无码鲁丝片午夜精品 | 日韩免费av网站 | 日韩精品视频在线播放 | 久久久久亚洲av成人片 | 亚洲美女视频在线观看 | 99re视频在线播放 | 操丝袜少妇| 成人日批视频 | 国产一区二区三区免费看 | 亚洲4438| 色婷婷视频| 久久99久久99 | 最新在线视频 | 天天射日| 俺去俺来也在线www色官网 | 成人xxx| 欧美日韩精品一区二区三区视频播放 | 97在线视频免费观看 | 久久人人干 | 天堂资源站| 国产剧情在线观看 | 在线观看国产 | 日本成人a| 视色网站 | 日韩欧美国产一区二区三区在线观看 | 国产精品久久久久久免费播放 | 伊人二区| 色大师在线观看 | 亚洲制服丝袜在线播放 | 亚洲成人基地 | 国产人妖网站 | 日日躁夜夜躁白天躁晚上躁91 | 少妇久久久久久久久久 | 久久精品欧美一区二区三区不卡 | 久久久中文字幕 | 又色又爽又黄无遮挡的免费视频 | 女生隐私免费看 | 男人天堂久久 | 香蕉视频911 | 亚洲av无码成人精品国产 | 91网入口 | 亚洲逼院| 好看的中文字幕电影 | 91成人动漫| 91精品国产91综合久久蜜臀 | 一本一道波多野结衣av黑人 | 久久久久久久久久久91 | 美女扒开屁股让男人桶 | 熟女丝袜一区 | 在线免费看av片 | 超碰在线进入 | 久久亚洲综合色 | 夜色综合| 亚洲熟妇无码一区二区三区 | 国产真实的和子乱拍在线观看 | 国产美女无遮挡免费视频 | 91久精品 | 国产精品久久久久久一区二区三区 | 国产情侣av自拍 | 国产亚洲久一区二区 | jizz18欧美18 | 爆乳2把你榨干哦ova在线观看 | 日韩一区二区三区视频 | 欧美成人精品在线观看 | 国产精品视频导航 | 密臀av在线播放 | 精品一区在线看 | 国产成人av一区二区三区不卡 | 中字幕视频在线永久在线观看免费 | 日韩性生交大片免费看 | 18黄暴禁片在线观看 | 色老二导航 | 性高跟鞋xxxxhd国产电影 | 青春草视频在线免费观看 | 国产一区在线观看视频 |