做linux c語言開發有一小陣子了,在這邊自己總結了些心得,相信能讓不懂得linux程式設計的人慢慢步入linux殿堂。有任何不對或不準確之處歡迎討論。
1. 安裝 linux 作業系統
既然要學習linux下的c語言開發,那麼安裝個linux作業系統是必須的。建議安裝ubuntu,這是我目前見過介面最友好的linux作業系統了。關於如何使用ubuntu以及在其上作開發,可參考我的另外一篇敝作《ubuntu使用心得》:
2. 熟悉 linux 作業系統下的命令
linux提供了大量的命令,利用它可以有效地完成大量的工作,如磁碟操作、檔案訪問、目錄操作、程序管理、檔案許可權設定等。所以,在linux系統上工作離不開使用系統提供的命令。要想真正理解linux系統,就必須從linux命令學起,通過基礎的命令學習可以進一步理解linux系統。
3. 學會一種原始碼編輯器
4. 掌握gcc和gdb
掌握gcc的基本用法,並且會用gdb來除錯程式。
5. 用好 c 語言
推薦:《c陷阱與缺陷》、《c專家程式設計》、《c程式語言》。
6. 學會寫makefile,以及用它來組織原始碼
當專案大了後,用命令列逐個逐個編譯、link檔案的工作量是非常恐怖的,這時候make就起作用,即使是很小的專案,我認為也應該採用make組織。
7. linux應用程式設計
終於說到正題了,呵呵。
linux上的應用程式設計基本上兩本書就搞定了:《apue》和《unp》,前者鍛鍊基本功,後者學習網路程式設計。
如果想學習unix/linux的程式設計,《apue》絕對經典的教材,加深一下功底,學習《unp》的第二卷。這樣基本上系統方面的就可以掌握了。 然後再看douglus e. comer的《用tcp/ip進行網際互連》第一卷,學習一下網路的知識,再看《unp》的第一卷,不僅學習網路程式設計,而且對系統程式設計的一些常用的技巧就很熟悉了,如果繼續網路程式設計,建議看《tcp/ip進行網際互連》的第三卷,裡面有很多關於應用協議telnet、ftp等協議的程式設計。
8. linux驅動與核心程式設計
驅動程式的門檻較高,首先你要學會linux應用程式設計,至少看過《apue》。
驅動程式設計的主要工作我認為至少有兩點:理解linux核心框架和模組的概念、懂得看晶元datasheet。
第一點其實就是先學會編寫乙個測試驅動程式。
另外,還有 《深入理解linux核心》。
最重要的是:手頭要有一塊嵌入式板子進行實踐。
9. 掌握一種 cvs 工具
如果不懂cvs的話,趕緊到 baidu 搜尋下。不用cvs的專案很容易面臨**丟失的問題,且不易做bug回歸。
10. 資料結構和演算法
上過計算機基礎課的人都知道:程式=資料結構+演算法。這兩項才是程式設計師的根本,如同武俠**中的「內功」。 有時間的話建議重溫這兩部分。推薦書籍:《algorithms in c》、《演算法導論》
呵呵,其實這一小塊我沒有發言權,我自己是從自動化專業轉行來寫程式的,資料結構和演算法都沒學過,目前正在自學惡補中。
後記:通過上面幾個步驟,我想成為乙個稱職的linux程式設計師是沒問題了。但如果要成為專家的話,我自己覺得還應該為自己選好方向並努力前進。
讓我們一塊努力!
掌握Linux程式設計的10個步驟
做linux c語言開發有一小陣子了,在這邊自己總結了些心得,相信能讓不懂得linux程式設計的人慢慢步入linux殿堂。有任何不對或不準確之處歡迎討論。1.安裝 linux 作業系統 既然要學習linux下的c語言開發,那麼安裝個linux作業系統是必須的。建議安裝ubuntu,這是我目前見過介面...
掌握Linux程式設計的10個步驟
做linux c語言開發有一小陣子了,在這邊自己總結了些心得,相信能讓不懂得linux程式設計的人慢慢步入linux殿堂。有任何不對或不準確之處歡迎討論。1.安裝 linux 作業系統 既然要學習linux下的c語言開發,那麼安裝個linux作業系統是必須的。建議安裝ubuntu,這是我目前見過介面...
Linux須掌握的10個技術點
1 linux系統基礎,參考書籍,可以看鳥哥linux基礎篇,至少要掌握這書60 內容,沒必須全部掌握.2 網路服務,服務有很多種,每間公司都會用到不同的,但基礎的服務肯定要掌握,如ftp,dns,samba,郵件,這幾個大概學一下就行,lamp和lnmp是必須要熟練,我所指的不是光光會搭建,而是要...