有時(shí)候?qū)懸恍┬|西的時(shí)候,還是需要使用C,因?yàn)镃在各個(gè)平臺(tái)的兼容性比C++相對(duì)要好,而且一般執(zhí)行的效率還是要比C++高。但是習(xí)慣了C++,用C老覺(jué)得不爽,太多東西不習(xí)慣,例如string、Exception等等。
收集了一些C的編程的lib,用起來(lái),減少了和C++的一些差別,還算有些安慰。
Exceptions In C?????????????????
??? URL:?http://adomas.org/excc/
?? C下面使用Exception,比較有趣吧,呵呵。
vstr
??? URL: http://www.and.org/vstr/
??? C下面的string,好處就是不需要自己再去管理空間的增長(zhǎng)和拷貝。當(dāng)然釋放操作還是要人工干預(yù),C是沒(méi)有析構(gòu)函數(shù)的。有時(shí)候?qū)懸恍┖?jiǎn)單的程序處理字符串(當(dāng)然不想用perl的場(chǎng)合),比較適合。
apr
??? URL: http://apr.apache.org/
??? apache出品,一些通用C函數(shù)庫(kù),包羅萬(wàn)有(包括線程、網(wǎng)絡(luò)),而且已經(jīng)被廣泛應(yīng)用。不過(guò)有些東西還是嫌做得簡(jiǎn)單了一些。
Libtc
??? URL: http://libtc.sourceforge.net/
??? 主要是一些C下面用的數(shù)據(jù)結(jié)構(gòu),例如鏈表、散列表、樹(shù)、隊(duì)列等等。
libevent
??? URL: http://www.monkey.org/~provos/libevent/
??? 事件驅(qū)動(dòng)的網(wǎng)絡(luò)服務(wù)器框架,相當(dāng)于reactor啦。另外一個(gè)類似的是?libivykis http://sourceforge.net/projects/libivykis?比較難記憶,還是libevent比較好記。
yada
??? URL: http://oss.devit.com/yada/
??? 一個(gè)可以訪問(wèn)多種DB的接口,目前支持了MySQL、SQLite3、Oracle和PostgreSQL。不過(guò)功能不算很強(qiáng),勉強(qiáng)可以用用。
CFL
??? URL: http://www.dystance.net/software/cfl/
??? 也提供了很多C的數(shù)據(jù)結(jié)構(gòu),封裝了一些socket等常用的類。
當(dāng)然還有很多很不錯(cuò)的C lib,不過(guò)主要是列出一些平時(shí)常用到。還有一些例如BDB那些這么經(jīng)典的東西就算了,沒(méi)有列出來(lái)了。