資源描述:
《UNIX下的C語言開發(fā)環(huán)境》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、第四章UNIX下的C語言開發(fā)環(huán)境Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientProfile5.2.0.0.Copyright2004-2011AsposePtyLtd.6.1程序設(shè)計(jì)環(huán)境學(xué)習(xí)程序設(shè)計(jì)從程序語言開始,但還應(yīng)了解程序執(zhí)行和程序與外界的交互問題。1.理想態(tài)的程序運(yùn)行環(huán)境用戶程序直接控制和使用各種設(shè)備,完成各種操作。Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientProfile5.2.0.0.Copyright2004-2011Aspo
2、sePtyLtd.針對一個簡單程序:main(){intc;while((c=getchar())!=EOF)putchar(c);}認(rèn)為執(zhí)行過程為:在單用戶單任務(wù)環(huán)境中基本符合。Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientProfile5.2.0.0.Copyright2004-2011AsposePtyLtd.2.多任務(wù)環(huán)境下程序執(zhí)行多任務(wù)中每一時刻都會有多個用戶程序提出訪問請求,因此會有:如此混亂的情況,程序?qū)o法運(yùn)行。Evaluationonly.CreatedwithAspose.Slidesf
3、or.NET3.5ClientProfile5.2.0.0.Copyright2004-2011AsposePtyLtd.為使多道環(huán)境中的程序正確執(zhí)行,需要OS管理。用戶程序需要系統(tǒng)核心區(qū)程序的管理,達(dá)到各自任務(wù)的執(zhí)行。Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientProfile5.2.0.0.Copyright2004-2011AsposePtyLtd.6.2基于系統(tǒng)支持的程序設(shè)計(jì)1.建立系統(tǒng)編程的思想理解多道環(huán)境程序執(zhí)行狀況,轉(zhuǎn)換用戶程序是執(zhí)行主體的認(rèn)識。了解OS可提供的服務(wù)及服務(wù)方式。充分利用OS提供
4、服務(wù)功能解決實(shí)際問題。盡量使編寫的程序最大限度的滿足系統(tǒng)平臺的支持能力。Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientProfile5.2.0.0.Copyright2004-2011AsposePtyLtd.1.gcc與gdb1.1UNIX和C語言C?是一種在?UNIX?操作系統(tǒng)的早期就被廣泛使用的通用編程語言,它最早是由貝爾實(shí)驗(yàn)室的?Dennis?Ritchie?為了?UNIX?的輔助開發(fā)而寫的。C?是所有版本的UNIX上的系統(tǒng)語言。幾乎任何一種計(jì)算機(jī)上都有至少一種能用的?C?編譯器;?并且它的語法和函
5、數(shù)庫在不同的平臺上都是統(tǒng)一的。80年代末期美國國家標(biāo)準(zhǔn)協(xié)會?(American?National?Standards?Institute)發(fā)布了一個被稱為ANSI?C的?C?語言標(biāo)準(zhǔn),這保證了在不同平臺上的C的一致性。7Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientProfile5.2.0.0.Copyright2004-2011AsposePtyLtd.1.gcc與gdb1.2GNUC編譯器GNU?C?編譯器(gcc)是一個全功能的?ANSI?C?兼容編譯器,它是所有UNIX系統(tǒng)可用的C編譯器。gcc是可
6、以在多種硬體平臺上編譯出可執(zhí)行程序的超級編譯器,其執(zhí)行效率與一般的編譯器相比平均效率要高20%~30%。8Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientProfile5.2.0.0.Copyright2004-2011AsposePtyLtd.3.1LINUX下C語言編程概述Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientProfile5.2.0.0.Copyright2004-2011AsposePtyLtd.1.gcc與gdbgcc編譯過程:
7、預(yù)處理,對源代碼文件中的文件包含(include)、預(yù)編譯語句(如宏定義define等)進(jìn)行分析。編譯,就是把C/C++代碼“翻譯”成匯編代碼。匯編,將第二步輸出的匯編代碼翻譯成符合一定格式的機(jī)器代碼,生成以.o為后綴的目標(biāo)文件。鏈接,將上步生成的目標(biāo)文件和系統(tǒng)庫的目標(biāo)文件和庫文件鏈接起來,最終生成了可以在特定平臺運(yùn)行的可執(zhí)行文件。10Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientProfile5.2.0.0.Copyright2004-2011AsposePtyLtd.1.