歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> 學習Unix和C語言

學習Unix和C語言

日期:2017/3/1 10:22:49   编辑:Linux編程

1、學習Unix和C語言,先向大家推薦一本書《Unix高級環境編程》(下載見 http://www.linuxidc.net/thread-2063-1-1.html ),這本書是學習Unix和C的經典之作,盡量把書中提到的系統調用都寫個練習程序,先感性的認識一下Linux系統提供給用戶的系統調用都是干什麼的,怎麼用。

系統調用是內核提供給用戶的功能用以申請內核服務,對於Linux內核的學習,從系統調用入手是個不錯的辦法。學習過程可以參看Linux的聯機幫助,和網絡上的資料。當你覺得差不多了的時候,那我給大家出一道聯系題目吧:實現一個ftp服務器和客戶端的功能,完全可以自己定義一些應用層的協議,只要能實現用簡單的命令傳輸文件就可以了。
這個題目可以使你練習到TCP/IP的基本編程方法和文件操作的基本方法對於後面學習內核的文件系統會有幫助的。

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行,這樣就很清楚的知道那個文件代碼是健壯的,那個文件有可能有隱患,在代碼檢查的時候可以有針對性的檢查某幾個文件。

Copyright © Linux教程網 All Rights Reserved