學習Unix和C語言

2021-08-26 21:48:23 字數 1223 閱讀 8102

1、學習unix和c語言,先向大家推薦一本書《unix高階環境程式設計》,這本書是學習unix和c的經典之作,盡量把書中提到的系統呼叫都寫個練習程式,先感性的認識一下linux系統提供給使用者的系統呼叫都是幹什麼的,怎麼用。

2、當你對unix系統有了些了解後,同時對於大部分的系統呼叫(關鍵是關於檔案的系統呼叫,對於linux系統的核心來說從檔案系統入手相對容易一些)也有了清楚的認識後,再推薦你一本書《linux核心情景分析》,該書是關於linux核心的經典之作唯一美中不足的是沒有關於網路子系統的詳細介紹。

你可以從檔案系統的系統呼叫入手,慢慢的你就會對linux有了乙個更深入的認識。同時注意很多經典的方法和思想在linux中的運用。你會認識到為什麼unix把所有的東西都看成檔案,對什麼東西操作都是對檔案操作,你會慢慢體會到unix的經典之處了。

3、當你對linux核心有了些了解後,你就可以找個方向來專門發展了,如果你想對眼下流行的網路程式設計感興趣,那麼再推薦你一本書《tcp/ip詳細解釋》,這本書是關於tcp/ip協議的經典之作。你會學習到tcp/ip協議棧是如果實現的,為什麼,各層協議之間是如何工作的。你看完了這本書後,你就可以自己寫乙個dos攻擊程式和sniffer了。

我說的簡單,其實我提到的每本書至少都夠你研究很長時間的,所以希望初學者別著急不驕不躁,相信只要努力過,一定會成為高手的。

在寫**的時候大家要注意養成好的**習慣和風格還有抽象能力。

下面給出大家在寫**的時候的20字方針:

函式要小

1、盡量的把函式弄的通用點,**行少點,乙個函式只完成乙個簡單的功能,一眼就能看出來此函式有沒有**錯誤,每個函式都是健壯的,那麼你的程式就是健壯的。

2、**要少 完成乙個功能的時候在邏輯清楚的情況下**越少越好,千萬不要比**誰寫的多啊。

3、演算法要好 在完成乙個功能的時候要考慮效率,目前計算機的記憶體很大,所以記憶體已經不是首要考慮的因素了,但是在某些特殊的地方效率還是很重要的。有效率高的演算法,就不用效率低的演算法,看看本版有一篇精華貼子是關於把乙個字元竄兩邊的空格去掉的帖子(trim),很多人都提出了演算法,但是有乙個演算法是最好的,效率最高,**最少,是演算法要好的最好體現。

4、命名要清 命名要清楚,最要用漢語中的謂賓結構如set_buffsize()。

5、檔案要多 盡量把乙個大的程式安功能分成多個檔案,乙個檔案盡量不要超作1000行,這樣就很清楚的知道那個檔案**是健壯的,那個檔案有可能有隱患,在**檢查的時候可以有針對性的檢查某幾個檔案。

新手看招 Unix和Linux下C語言學習指南

引言儘管 c 語言問世已近 30 年,但它的魅力仍未減退。c 語言繼續吸引著眾多的開發者,他們為了編寫 移植或維護應用程式而必須學習新技能。本文是為了滿足對c語言初學者或想提高自身c語言修為的開發人員的需要而寫的。希望對您的學習和工作有所幫助。您也許不贊同其中的某些方法,但我們希望您會喜歡其中的一些...

新手看招 Unix和Linux下C語言學習指南

引言 儘管 c 語言問世已近 30 年,但它的魅力仍未減退。c 語言繼續吸引著眾多的開發者,他們為了編寫 移植或維護應用程式而必須學習新技能。本文是為了滿足對c語言初學者或想提高自身c語言修為的開發人員的需要而寫的。希望對您的學習和工作有所幫助。您也許不贊同其中的某些方法,但我們希望您會喜歡其中的一...

學習 C語言 const和指標

複製鏈結 關鍵字const用來定義常量,如果乙個變數被const修飾,那麼它的值就不能再被改變。const int a 5 int const a 5 上面這兩種寫法都一樣,都是表示變數a的值不能被改變了。需要注意的地方是,用const修飾變數時,一定要給變數初始化,否則之後就不能再進行賦值了。例如...