linux應(yīng)用程序開發(fā)介紹.pdf

linux應(yīng)用程序開發(fā)介紹.pdf

ID:52955482

大?。?76.65 KB

頁數(shù):30頁

時間:2020-04-03

linux應(yīng)用程序開發(fā)介紹.pdf_第1頁
linux應(yīng)用程序開發(fā)介紹.pdf_第2頁
linux應(yīng)用程序開發(fā)介紹.pdf_第3頁
linux應(yīng)用程序開發(fā)介紹.pdf_第4頁
linux應(yīng)用程序開發(fā)介紹.pdf_第5頁
資源描述:

《linux應(yīng)用程序開發(fā)介紹.pdf》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。

1、第2章Linux系統(tǒng)應(yīng)用程序開發(fā)讀性大大降低的糟糕情況,同時不要試圖去將你的代碼注釋寫得更好,而是應(yīng)該將程序代碼寫得更好,不要花費大量的時間和精力去解釋這些的代碼。通常情況下,注釋只說明代碼的功能,而不會說明其實現(xiàn)的原理,因為基于一個好的軟件開發(fā)流程而產(chǎn)生出來的軟件代碼,它的編制基礎(chǔ)是詳細(xì)設(shè)計和實現(xiàn)文檔,軟件代碼僅僅是該文檔的產(chǎn)出物。這也說明程序中的注釋僅僅是完成了簡單說明和介紹的功能。在實際應(yīng)用過程中,應(yīng)該避免把注釋插到函數(shù)體內(nèi),應(yīng)寫在函數(shù)前面,以說明其功能。同樣對于必須加以解釋的代碼或變量,注釋也應(yīng)寫在它們的前面。●大括號的運

2、用大括號(“{”和“}”)的處理在C程序書寫風(fēng)格中也是很重要的,與縮進(jìn)格式不同,幾乎沒有任何理由可以說服程序員去選擇一種風(fēng)格而不是選擇另外一種風(fēng)格,我們建議采用統(tǒng)一的風(fēng)格來處理大括號的排版,而不會在意函數(shù)體還是其他——開始和結(jié)束的括號都放在下一行的第一列。●函數(shù)的書寫格式函數(shù)應(yīng)該是短小精悍的,它的代碼長度應(yīng)該有限。也就是說,一個函數(shù)的最大長度和函數(shù)的復(fù)雜程度以及縮進(jìn)大小成反比。如果計劃編寫一個簡單但長度相對較長的函數(shù),并且已經(jīng)對不同的情況做了很多細(xì)化的工作,那么編寫一個稍長的函數(shù)也是可以的。但是,假如計劃編寫一個很復(fù)雜的函數(shù),而且

3、你已經(jīng)估計到,其他人很難讀懂這個函數(shù),一般建議請重新考慮這個函數(shù),并將它們分割成更小的函數(shù)。在進(jìn)行函數(shù)設(shè)計時,還需要考慮的是,該函數(shù)困難要定義的局部變量的數(shù)量,理論上,這些變量不應(yīng)該超過10個,否則就有可能出錯?!衿渌矫娴淖⒁馐马棧?)如果參數(shù)太多,不能放在同一行,則在每行參數(shù)開頭處對齊。(2)當(dāng)一個表達(dá)式需要分成多行書寫時,應(yīng)該在操作符之前分割。(3)盡量不要讓兩個不同優(yōu)先級的操作符出現(xiàn)在相同的對齊方式中,應(yīng)該增加括號通過代碼縮進(jìn)表示嵌套關(guān)系。(4)不要在聲明多個變量時跨行,每一行都應(yīng)以一個新的聲明開頭。(5)當(dāng)一個if-el

4、se語句中嵌套了另一個if-else語句時,應(yīng)該用大括號把if-else語句括起來。(6)盡量避免在if條件中進(jìn)行賦值運算。(7)如果沒有聲明,不要將BOOL值TRUE和FALSE對應(yīng)與1和0進(jìn)行編程,大多數(shù)編譯器會將FALSE視為0,任何非0值都是TRUE。我們建議重新定義BOOL值并鎖定0和1。(8)預(yù)防和避免非法指針的使用。2.3Linux系統(tǒng)程序應(yīng)用開發(fā)實例分析本節(jié)內(nèi)容包括較為豐富,考慮工程開發(fā)的實際需要,筆者在這里精心選編了若干比較有代表性的例子來加以介紹,包括一些常見的程序開發(fā)所必須的典型案例與技巧,包括系統(tǒng)文件系統(tǒng)應(yīng)

5、用編程、內(nèi)存管理、多進(jìn)程編程、進(jìn)程通訊機(jī)制、串口通訊、網(wǎng)絡(luò)編程、GUI編程初步等各個部分。所涵蓋內(nèi)容覆蓋面較全,每一個實例都給出實際代碼,并盡可能的給出真實的實驗結(jié)果,考慮篇幅限制,每個實驗都給出簡要注釋和分析,詳盡分析留給讀者。38嵌入式Linux工程開發(fā)實踐2.3.1文件系統(tǒng)應(yīng)用編程Linux支持多種文件系統(tǒng),如ext、ext2、minix、iso9660、msdos、fat、vfat、nfs等。在這些具體文件系統(tǒng)的上層,Linux提供了虛擬文件系統(tǒng)(VFS)來統(tǒng)一它們的行為,虛擬文件系統(tǒng)為不同的文件系統(tǒng)與內(nèi)核的通信提供了一致

6、的接口。下面對涉及到的文件系統(tǒng)編程關(guān)鍵函數(shù)給以分析:ò關(guān)鍵函數(shù)分析1.在linux下,在對文件的任何操作之前,必須先用open()函數(shù)將文件打開,其原型為:intopen(constchar*filename,intflags[,mode_tmode])其中[]中的項為可選項,filename為指定的文件及其路徑名,flags參數(shù)控制文件的打開方式,可以是O_RDONLY、O_RDWR、O_WRONLY等等,分別表示只讀、讀寫、只寫方式等,mode參數(shù)指定正在創(chuàng)建的文件的存儲權(quán)限,可以是S_IWGRP、S_IRUSR、S_IWUS

7、R等的或值。函數(shù)創(chuàng)建并返回一個由filename所指定的文件的心的描述符。錯誤時,返回一個-1,并給errno置相應(yīng)的錯誤代碼。2.對文件進(jìn)行讀操作可以用read()函數(shù),其原型為:ssize_tread(intfd,void*buffer,size_tsize)該函數(shù)從文件描述符fd所指的文件中讀取size個字節(jié)的字符,并把它放到buffer所指向的緩沖區(qū)中。函數(shù)正常返回實際所讀取的字節(jié)數(shù)。返回0表明到達(dá)了文件的尾端,返回-1表明出錯,并給errno置相應(yīng)的錯誤代碼。3.對文件進(jìn)行寫操作可以用write()函數(shù),其原型為:ssi

8、ze_twrite(intfd,constvoid*buffer,size_tsize)該函數(shù)把size個字節(jié)從buffer所指向的緩沖區(qū)中寫入到用fd所指向的文件中。函數(shù)正常返回實際所寫入的字節(jié)數(shù)。返回-1表明出錯,并給errno置相應(yīng)的錯誤代碼

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動畫的文件,查看預(yù)覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負(fù)責(zé)整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時聯(lián)系客服。
3. 下載前請仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時可能由于網(wǎng)絡(luò)波動等原因無法下載或下載錯誤,付費完成后未能成功下載的用戶請聯(lián)系客服處理。