19 Linux編碼規範

2022-02-12 10:03:07 字數 1489 閱讀 1754

一、排版

1.相對獨立的程式塊之間、變數宣告之後必須加空行。

int          conn_fd;

int          ret;

conn_fd = socket(af_inet, sock_stream,0);

if (conn_fd < 0) 2.

程式塊要採用縮排風格編寫,縮排為4

個空格或乙個tab鍵。3

.對於較長的語句(超過個80

字元)要分成多行書寫,劃分出的新行要進行適當的縮排,使排版整齊,語句可讀。

對於引數較長的函式也要劃分成多行。

ret = connect(conn_fd, (struct sockaddr *)&serv_addr,

sizeof (struct sockaddr));5.

if、for、do

、while

、case

、switch

、default

等語句各自佔一行,且if、

for、do、

while

等語句的執行語句部分無論多少都要加括號

。if (conn_fd < 0)

6.函式內的語句、結構的定義、迴圈和

if語句中的**都要採用縮排風格,

case

語句後的處理語句也要縮排。

示例:typedef struct _port_segment

port_segment;

if (conn_fd < 0)

for (i=portinfo.min_port; i<=portinfo.max_port; i++)

}可以改為如下方式,以提高效率:

for (col = 0; col < 5; col++)}6.

避免迴圈體內含判斷語句,應將迴圈語句置於判斷語句的**塊之中。

如下**效率較低:

for (ind = 0; ind < max_rect_number; ind++)

else

}因為判斷語句與迴圈變數無關,可作如下改進,以減少判斷次數:

if (data_type == rect_area)

}    

else

}六、**安全

1.要避免野指標,內在洩露,越界,操作已釋放內在的指標,引用未初始化的變數,對無符號數執行

--並比較操作,異常處理,巨集定義沒有使用完備的括號,等問題。

記憶體操作越界是軟體系統主要的錯誤之一,後果是使執行中的程式崩潰,或者留下安全漏洞。

2.程式編寫完成後,應該檢查易混淆的操作符,如「

==」和「

=」、「

&&」和「

&」、「

||」和「|」。

3.

linux下,多執行緒中的子執行緒退出必須採用主動退出方式,即子執行緒應在

return

處結束執行。

19 linux裝置號之操作

在linux裝置驅動中,裝置號設乙個很重要的概念和變數。不論是主裝置號,還是次裝置號,在裝置驅動中都佔據了很重要的地位。那麼他在kernel中是如何操作的?這個資料結構都是通過那些函式可以很容易的在我們寫linux裝置驅動模組時被我們所使用呢?在include linux type.h檔案中我們能看...

19 linux軟體管理之簡述

軟體包分類 原始碼包介紹 優點開源 可以很方便的自定義要安裝的功能,並且如果能力足夠可以修改源 進行安裝,比較適合定製安裝 更加穩定效率也更高 沒有二進位製包的依賴性問題 解除安裝比較方便。缺點需要手工安裝,需要對系統熟悉到一定程度才能方便的安裝,容易安裝出錯 就是編譯太慢 安裝過程中一旦出錯新手很...

19Linux安裝包知識

軟體包管理簡介 軟體包分類 原始碼包 大多數是c語言寫的,還要一些是c 但是現在不常用,但是好處是可以直接看到源 指令碼安裝包 簡單,安裝過過程和wins差不多,其實本質也是原始碼包,只是因為有人寫了安裝介面 二進位製包 rpm包,系統預設包 經過編譯之後,全部是010101,機器語言,不能再看到源...