UNIX/Linux下C語言的學習路線
UNIX/Linux下C語言的學習路線。一、工具篇“公欲善其事,必先利其器”。編程是一門實踐性很強的工作,在你以後的學習或工作中,你將常常會與以下工具打交道, 下面列出學習C語言編程常常用到的軟件和工具。
1、操作系統
在UNIX或Linux系統中學習C很方便,所以在開始您的學習旅程前請先選擇一個UNIX或Linux操作系統,目前可供個人免費使用的UNIX或Linux系統有FreeBSD、RedHat Linux、SUSE Linux等,而且在安裝包中還提供很多實用的工具,如:gcc, make等。
如果您一直使用Windows,身邊又沒有多餘的機器安裝UNIX,則可以使用VMware,通過VMware安裝虛擬系統。
2、編譯工具
目前絕大多數Unix或Lnux系統都提供CC或GCC編譯器,最簡單的cc命令格式如下:
cc -o hello hello.c
在unix shell環境中敲入上面的代碼會將hello.c程序編譯成可執行文件hello。
3、make工具
如 GNU make、System V make 和 Berkeley make 是用來組織應用程序編譯過程的基本工具,但是每個 make 工具之間又有所不同。
大部分UNIX和Linux程序都是通過運行make來編譯的。
make工具會讀取一個包含指令的文件(這個文件的名字通常都是 makefile 或 Makefile,不過後文中我們統一稱之為 “makefile”),並執行各種操作來編譯程序。
4、調試工具
最簡單的調試工具:為你的程序添加打印語句,在你對程序的運行機制有了一定的瞭解後,你可以實用一些工具幫助你進行調試,當然你得學習一下這些工具得使用,如:dbx,gdb等。
還有一些內存工具可以幫你查找內存泄漏或緩衝區溢出等一些問題,如:memwatch,yamd等。
5、其他工具 1)vi或vim
Unix下文本編輯器。主要靠一堆命令來編輯文本文件,學Unix編程最好熟悉並熟練使用vi編輯器。
當然在實際工作中,你可能需要一個集成編碼環境或一個功能強大的圖形化編輯工具。
提供一箇中文的vim在線手冊:
2)Secure shell/putty一個支持ssh協議得客户端工具,多數情況下用來連接linux系統。二、書籍篇
“書是人類進步得階梯”。學習一門新的知識,當然要選擇幾本適合自己得書籍,下面介紹一些我自己學習C語言使用過的書籍:1.《C primer plus》推薦理由:適合作為入門書和基本函數查詢得參考資料。本書最新版為第五版,以ANSI C99為標準詳細介紹了C語言。
2.《The C programming_Language》推薦理由:C語言之父得作品權威性毋庸置疑。雖然書籍出版時間比較老,好像也沒更新,不過仍不失為經典書籍,網上有這本書得英文電子版提供下載。3.《C 專家編程》推薦理由:本書可以幫助有一定文章的C程序員成為C編程方面的專家,最關鍵的是本書寓教於樂,讓你充分享受編程的樂趣。4.《C缺陷與陷阱》推薦理由:書中所揭示的知識能幫助您繞過C語言自身得陷阱和缺陷,減少代碼中許多常見的Bug。5.《unix環境高級編程》
推薦理由:既然是UNIX環境下C編程,就不得不説説UNIX編程書籍。
Stevens先生的《unix環境高級編程》是我竭力推薦的,也是我的案頭必備(如果對網絡編程有興趣的,可以學習一下Stevens先生的《UNIX網絡編程》兩卷,如果覺得還不過癮,可以再看看《TCP/IP詳解》三卷)。6.《計算機編程藝術》推薦理由:算法大師得嘔心瀝血之作。計劃出版五卷書,目前好像已出版3卷。對算法有興趣得可以研究一下。三、過程篇
1.學習C語法
語法的學習對於一個具有編程底子的來説,就很輕鬆了;即使你以前沒有學習過其他編程語言,我相信有2個星期,你也能輕鬆搞定。
需要注意的.是,不要太糾纏於語言的細節,比如:運算符優先級與結合性的問題等。2.學習C標準庫
ANSI C庫把函數分為不同的組,每個組都具有與之相關的頭文件。C語言標準庫相對於其他語言,比如C++,Java來説是非常短小精悍的,但首先應着重對以下庫進行學習:
ctype.h:字符處理
math.h:數學庫
stdio.h:標準I/O庫
stdlib.h:通用工具庫
string.h:字符串處理
time.h:時間和日期
如果想了解完成的ANSI C庫,你可以購買相關的書籍,這些書籍一般會詳細介紹每個函數的用户和一些注意點;當然你也可以登陸 ... amp;page=獲取ANSI C庫詳細信息。3.攻克C的難點1)C語言聲明:C語言的聲明確實讓我覺得恐怖,比較晦澀難懂,而且聲明的形式和使用的形式還類似。比如如下的聲明恐怕就連很多熟悉C多年的程序員也不是一眼就能看出來的: char * const * (*next)(); 那麼有沒有一種好的記憶方法或規則來搞清楚呢,好像沒有,如果有的話也不是這樣折磨人了。不過可以看看《C專家編程》第三章的內容,或許你會有所收穫。 也只能多學多練了,所謂熟能生巧嘛,希望這個問題不要在你的心靈上留下陰影。
2)數組與指針:
數組與指針的關係,在標準中並沒有作很詳細的規定,而且好多C入門的書籍在這個問題上並沒有給出很詳細的説明,所以會給人造成很多誤解。
對於這個問題,你可以參考《C缺陷與陷阱》4.5節和《C專家編程》第4,9,10章,相信你這裏面的內容搞透徹,以後就不會再被這個問題搞迷惑。
3)指針與內存:
如果你以後編寫規模較大的程序,你可能發現這個問題可能會是你最大的煩惱,而且可能會是你消耗最多調試時間的事項。
4)C版本的問題:
你得特別小心該問題,最好不要在你的程序中混合使用不同版本C的特性,否則會給你帶來很迷惑的問題。如果一定要用,你最好清楚自己在做什麼。
還有一些其他C中的難點和容易錯誤的地方,可以學習前人的一些文章。以下是一個c FAQ的鏈接地址,相信在這篇文檔中有你需要的大部分問題的解決方法。
4. UNIX環境編程
學習了以上內容之後,我相信,你就可以進行unix環境編程了。不過你可能需要對操作系統理論有一點點的瞭解,這樣學起來會比較輕鬆一些。
Unix環境編程,你應該着重IO和進程兩大塊內容。
《Unix環境高級編程》中對Unix環境編程有着非常詳細且深入的論述,而且書中有大量實用性例子程序,不過可能得花上幾個月得時間,好好啃一啃了。 在紮實掌握以上內容,不代表你得C語言學習支路已經完成,相反,才剛剛開始。以後你需要用學到得知識去解決大量不同實際問題,在不斷得實踐過程中,你會近一步加深對C的理解。有了以上基礎之後,你會發現,在實踐過程中需要的其他知識,你會非常快速的掌握。
相關文章
-
linux就業前景還不錯,想培訓一下linux系統,以後在這方面發展
尊敬的各位來賓、全體老年同志們: 大家好! 金秋十月,山花爛漫,在黨的xx大即將召開的前夕,我們在這裏隆重集會,共同慶祝中華民族老年人的傳統佳節—“九九重陽節”,在此我謹代表鄉黨委、鄉人大、鄉政府,向全鄉老年同志們致以節 -
八年級英語下冊unit 7《Would you mind turning down the music?》教學設計
一、教學內容及分析。本單元是八年級英語下冊的第七單元,主題是如何更禮貌的提建議,主要功能項目是Make requests和Apologize,本單元的語法要點是Would you mind …?和Could you please…等句型的運用,知識重難點為:would -
春節短信(chunjieduanxin)祝福語:春節短信大全
春節短信朋友篇(chunjieduanxin Pengyou pian)·你在新年夜被通緝了,你的罪行是:對朋友太好,又夠義氣;青春的面孔,燦爛的笑容。本庭現判決如下:罰你終身做我的朋友,不得上訴!【新年祝福語】·祝你在新的一年裏:事業正當午,身 -
culture是什麼意思 civilization+culture含義區別用法
culture【釋義】英 ['kʌltʃə(r)] 美 ['kʌltʃər] n.栽培;文化;教養vt.培養,栽培【變形】過去式: cultured過去分詞: cultured現在分詞: culturing第三人稱單數: cult -
Linux自動Mount NTFS分區的權限問題怎麼解決?
linux系統普遍使用於服務器中。而我們使用的過程中也跟個人pc一樣都會遇到各種問題。而當我們在linux中自動Mount NTFS分區時的權限問題我們要怎麼解決呢?下面我們就來了解下吧。我的Linux自動mount NTFS分區時,在我解 -
Linux下C編程:信號處置方法實習運用
六角恐龍魚一天要喂一次。它本身是一種兩棲動物,正常情況下會一直維持幼體形態,而且在這種形態下可以性成熟,從而進行繁殖後代。這種動物適合養在25-26℃的水中,水質一定要保持住,一旦發生變化很容易影響它的食慾。平時可 -
自啟動QQ報錯”initialization failure:0x0000000C“,何解?
問題表現:1、系統異常,自啟動的QQ報出如題的錯誤。2、IE啟動後只能顯示出連接欄和其他幾個按鈕,但是無法進行操作,等十幾秒或者以兩分鐘後自動關閉。3、chrome可以啟動,但是所有鏈接無效,提示為“無法顯示此網頁”,按照一般 -
關於學習下學期 Unit 30 Mainly revision的建議
下學期Unit30Mainlyrevision教學目標知識目標1.掌握本單元的詞語:health,fast,ofcourse,travel,safe,andsoon,oneday,job,helpful,geton;並複習上半學期學過的詞語。2.掌握12個功能項目:提供與請求幫助、描述物品、發出 -
linux中php安裝CURL擴展方法示例教程
如果php已經在系統編譯好,後來又需要添加新的擴展。一種方式就是重新完全編譯php,另一種方式就是單獨編譯擴展庫,以extension的'形式擴展。下面以安裝curl擴展為例:1、下載curl安裝包。(我的php是4.4.4的,下載最新的curl -
Unit 6 I like music that I can dance to評課稿範文
趙老師上的新目標英語9年級Unit 6 I like music that I can dance to SectionA 3a-4. Period 2公開課,聽了趙老師這節課,收穫頗多。趙老師老師這堂英語課,清晰實在、紮實系統、動靜結合,以新課程理念為指導,充分考慮了學生