學(xué)習(xí)C語言要掌握的幾個(gè)庫
一、工具的使用
1、學(xué)會(huì)使用vim/emacs,vim/emacs是linux下最常用的源碼編輯器,不光要學(xué)會(huì)用它們編輯源碼,還要學(xué)會(huì)用它們進(jìn)行查找、定位、替換等。新手的話推薦使用vim,這也是我目前使用的文本編輯器。
2、學(xué)會(huì)makefile文件的編寫規(guī)則,并結(jié)合使用工具aclocal、autoconf和automake生成makefile文件。
3、掌握gcc和gdb的基本用法。掌握gcc的用法對(duì)于構(gòu)建一個(gè)軟件包很有益處,當(dāng)軟件包包含的文件比較多的時(shí)候,你還能用gcc把它手動(dòng)編譯出來,你就會(huì)對(duì)軟件包中各個(gè)文件間的依賴關(guān)系有一個(gè)清晰的了解。
4、掌握svn/cvs的基本用法。這是linux,也是開源社區(qū)最常用的版本管理系統(tǒng)??梢匀ピ囍鴧⒓觭ourceforge上的一些開源項(xiàng)目。
二、linux/unix系統(tǒng)調(diào)用與標(biāo)準(zhǔn)C庫
系統(tǒng)調(diào)用應(yīng)用軟件與操作系統(tǒng)的接口,其重要性自然不用說,一定要掌握。推薦學(xué)習(xí)資料為steven先生的UNIX環(huán)境高級(jí)編程(簡(jiǎn)稱APUE)。
三、庫的學(xué)習(xí)
無論是在哪個(gè)平臺(tái)做軟件開發(fā),對(duì)于庫的學(xué)習(xí)都很重要,linux下的開發(fā)庫很多,我主要介紹一下我常常用到的一些庫。
1、glib庫
glib 庫是gtk+和gnome的基礎(chǔ)庫,并具是跨平臺(tái)的,在linux、unix和windows下都可以用。glib庫對(duì)于linux平臺(tái)開發(fā)的影響就像 MFC對(duì)windows平臺(tái)開發(fā)的影響一樣,很多開源項(xiàng)目都大量的使用了glib庫,包括gimp、gnome、gaim、evolution和 linux下的集群軟件heartbeat。因?yàn)間lib庫自帶有基本的數(shù)據(jù)結(jié)構(gòu)實(shí)現(xiàn),所以在學(xué)習(xí)glib庫的時(shí)候可以順便學(xué)習(xí)一下基本的數(shù)據(jù)結(jié)構(gòu)(包括 鏈表、樹、隊(duì)列和hash表)。
2、libxml庫
libxml是linux平臺(tái)下解析XML文件的一個(gè)基礎(chǔ)庫,現(xiàn)在很多實(shí)用軟件都用XML格式的配置文件,所以也有必要學(xué)習(xí)一下。
3、readline庫
readline 庫是bash shell用的庫,如果要開發(fā)命令行程序,那么使用readline庫可以減少很多工作量,比如bash里的命令行自動(dòng)補(bǔ)全,在readline里就已經(jīng) 有實(shí)現(xiàn),當(dāng)然你也可以用自己的實(shí)現(xiàn)替代庫的行為。readline庫有很多網(wǎng)站介紹的,只要google一下readline就可以找到一堆了。
4、curses庫
curses 庫以前是vi程序的一部分,后來從vi里提取出來成為一個(gè)獨(dú)立的庫。curses庫對(duì)于編寫終端相關(guān)的程序特別有用,比如要在終端某一行某一列定位輸出, 改變終端字體的顏色和終端模式。linux下的curses庫用的是GNU實(shí)現(xiàn)的ncurses(new curses的意思)。
5、gtk+和KDE庫
這兩個(gè)庫是開發(fā)GUI應(yīng)用程序的基礎(chǔ)庫,現(xiàn)在linux下的大部份GUI程序都是基于這兩個(gè)庫開發(fā)的,對(duì)于它們 的學(xué)習(xí)也是很有必要的。
四、網(wǎng)絡(luò)的學(xué)習(xí)
網(wǎng)絡(luò)這個(gè)東西太寬了,推薦學(xué)習(xí)資料steven先生的UNIX網(wǎng)絡(luò)編程(簡(jiǎn)稱UNP)和TCP/IP協(xié)議詳解,更進(jìn)一步的話可以學(xué)習(xí)使用libnet編寫網(wǎng)絡(luò)程序。
以上所述就是本文的全部?jī)?nèi)容了,希望大家能夠喜歡。
相關(guān)文章
關(guān)于C語言多線程pthread庫的相關(guān)函數(shù)說明
下面小編就為大家?guī)硪黄P(guān)于C語言多線程pthread庫的相關(guān)函數(shù)說明。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-05-05
Qt實(shí)現(xiàn)簡(jiǎn)單TCP服務(wù)器
這篇文章主要為大家詳細(xì)介紹了Qt實(shí)現(xiàn)簡(jiǎn)單TCP服務(wù)器,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-08-08
static_cast,dynamic_cast,reinterpret_cast,const_cast的區(qū)別及用法詳解
以下是對(duì)static_cast,dynamic_cast,reinterpret_cast,const_cast的區(qū)別及用法進(jìn)行了詳細(xì)的分析介紹,需要的朋友可以過來參考下2013-09-09
C++任意線程通過hwnd實(shí)現(xiàn)將操作發(fā)送到UI線程執(zhí)行
做Windows界面開發(fā)時(shí),經(jīng)常需要在多線程環(huán)境中將操作拋到主線程執(zhí)行,下面我們就來學(xué)習(xí)一下如何在不需要重新定義消息以及接收消息的情況下實(shí)現(xiàn)這一要求,感興趣的可以了解下2024-03-03
C語言隨機(jī)數(shù)生成教程(rand和srand用法)
這篇文章主要介紹了C語言隨機(jī)數(shù)生成教程(rand和srand用法),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-01-01
C++實(shí)現(xiàn)統(tǒng)計(jì)代碼運(yùn)行時(shí)間的示例詳解
這篇文章主要為大家詳細(xì)介紹了C++一個(gè)有趣的小項(xiàng)目——統(tǒng)計(jì)代碼運(yùn)行時(shí)間,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2023-05-05
使用C語言提取子字符串及判斷對(duì)稱子字符串最大長(zhǎng)度
這篇文章主要介紹了使用C語言提取子字符串及判斷對(duì)稱子字符串最大長(zhǎng)度,文后附送了一道ACM競(jìng)賽題目,需要的朋友可以參考下2015-08-08

