<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>
"); //-->

博客專(zhuān)欄

EEPW首頁(yè) > 博客 > 10個(gè)超贊的C語(yǔ)言開(kāi)源項目,值得學(xué)習

10個(gè)超贊的C語(yǔ)言開(kāi)源項目,值得學(xué)習

發(fā)布人:xiaomaidashu 時(shí)間:2022-08-18 來(lái)源:工程師 發(fā)布文章

今天和大家分享一下10個(gè)超贊的C語(yǔ)言開(kāi)源項目。

  1. Webbench
  2. Tinyhttpd
  3. cJSON
  4. CMockery
  5. Libev
  6. Memcached
  7. Lua
  8. SQLite
  9. UNIX v6
  10. NETBSD
1. Webbench

Webbench 是一個(gè)在 linux 下使用的非常簡(jiǎn)單的網(wǎng)站壓測工具。

它使用 fork()模擬多個(gè)客戶(hù)端同時(shí)訪(fǎng)問(wèn)我們設定的 URL,測試網(wǎng)站在壓力下工作的性能。

最多可以模擬 3 萬(wàn)個(gè)并發(fā)連接去測試網(wǎng)站的負載能力。

Webbench 使用C語(yǔ)言編寫(xiě), 代碼實(shí)在太簡(jiǎn)潔,源碼加起來(lái)不到 600 行。

項目地址:

http://home.tiscali.cz/~cz210552/webbench.html

2. Tinyhttpd

tinyhttpd 是一個(gè)超輕量型 Http Server,使用C語(yǔ)言開(kāi)發(fā),全部代碼只有 502 行(包括注釋),附帶一個(gè)簡(jiǎn)單的 Client

可以通過(guò)閱讀這段代碼理解一個(gè) Http Server 的本質(zhì)。

項目地址:

http://sourceforge.net/projects/tinyhttpd/

3. cJSON

cJSON 是C語(yǔ)言中的一個(gè) JSON 編****,非常輕量級,C文件只有 500 多行,速度也非常理想。

cJSON 也存在幾個(gè)弱點(diǎn),雖然功能不是非常強大,但 cJSON 的小身板和速度是最值得贊賞的。

其代碼被非常好地維護著(zhù),結構也簡(jiǎn)單易懂,可以作為一個(gè)非常好的C語(yǔ)言項目進(jìn)行學(xué)習。

項目主頁(yè):

http://sourceforge.net/projects/cjson/

4. CMockery

cmockery 是 google 發(fā)布的用于C單元測試的一個(gè)輕量級的框架。

它很小巧,對其他開(kāi)源包沒(méi)有依賴(lài),對被測試代碼侵入性小。

cmockery 的源代碼行數不到 3K,你閱讀一下 will_return 和 mock 的源代碼就一目了然了。

主要特點(diǎn):

  • 免費且開(kāi)源,google 提供技術(shù)支持;
  • 輕量級的框架,使測試更加快速簡(jiǎn)單;
  • 避免使用復雜的編譯器特性,對老版本的編譯器來(lái)講,兼容性好;
  • 并不強制要求待測代碼必須依賴(lài) C99 標準,這一特性對許多嵌入式系統的開(kāi)發(fā)很有用

項目地址:

http://code.google.com/p/cmockery/downloads/list

5. Libev

libev 是一個(gè)開(kāi)源的事件驅動(dòng)庫,基于 epoll,kqueue 等 OS 提供的基礎設施。

其以高效出名,它可以將 IO 事件,定時(shí)器,和信號統一起來(lái),統一放在事件處理這一套框架下處理。

基于 Reactor 模式,效率較高,并且代碼精簡(jiǎn)(4.15 版本 8000 多行),是學(xué)習事件驅動(dòng)編程的很好的資源。

項目地址:

http://software.schmorp.de/pkg/libev.html

6. Memcached

Memcached 是一個(gè)高性能的分布式內存對象緩存系統,用于動(dòng)態(tài) Web 應用以減輕數據庫負載。

它通過(guò)在內存中緩存數據和對象來(lái)減少讀取數據庫的次數,從而提供動(dòng)態(tài)數據庫驅動(dòng)網(wǎng)站的速度。

Memcached 基于一個(gè)存儲鍵/值對的 hashmap。

Memcached-1.4.7 的代碼量還是可以接受的,只有 10K 行左右。

項目地址:

http://memcached.org/

7. Lua

Lua 很棒,Lua 是巴西人發(fā)明的,這些都令我不爽,但是還不至于臉紅,最多眼紅。

讓我臉紅的是 Lua 的源代碼,百分之一百的 ANSI C,一點(diǎn)都不摻雜。

在任何支持 ANSI C 編譯器的平臺上都可以輕松編譯通過(guò)。

我試過(guò),真是一點(diǎn)廢話(huà)都沒(méi)有。

Lua 的代碼數量足夠小,5.1.4 僅僅 1.5W 行,去掉空白行和注釋估計能到 1W 行。

項目地址:

http://www.lua.org/

8. SQLite

SQLite 是一個(gè)開(kāi)源的嵌入式關(guān)系數據庫,實(shí)現自包容、零配置、支持事務(wù)的 SQL 數據庫引擎。其特點(diǎn)是高度便攜、使用方便、結構緊湊、高效、可靠。

足夠小,大致 3 萬(wàn)行C代碼,250K。

項目地址:

http://www.sqlite.org/

9. UNIX v6

UNIX V6 的內核源代碼包括設備驅動(dòng)程序在內約有 1 萬(wàn)行,這個(gè)數量的源代碼,初學(xué)者是能夠充分理解的。有一種說(shuō)法是一個(gè)人所能理解的代碼量上限為 1 萬(wàn)行,UNIX V6 的內核源代碼從數量上看正好在這個(gè)范圍之內。

看到這里,大家是不是也有“如果只有 1 萬(wàn)行的話(huà)沒(méi)準兒我也能學(xué)會(huì )”的想法呢?

另一方面,最近的操作系統,例如 Linux 最新版的內核源代碼據說(shuō)超過(guò)了 1000 萬(wàn)行。

就算不是初學(xué)者,想完全理解全部代碼基本上也是不可能的。

項目地址:

http://minnie.tuhs.org/cgi-bin/utree.pl?file=V6

10. NETBSD

NetBSD 是一個(gè)免費的,具有高度移植性的 UNIX-like 操作系統。

NetBSD 計劃的口號是:”Of course it runs NetBSD”。

它設計簡(jiǎn)潔,代碼規范,擁有眾多先進(jìn)特性,使得它在業(yè)界和學(xué)術(shù)界廣受好評。

由于簡(jiǎn)潔的設計和先進(jìn)的特征,使得它在生產(chǎn)和研究方面,都有卓越的表現,而且它也有受使用者支持的完整的源代碼。

許多程序都可以很容易地通過(guò) NetBSD Packages Collection 獲得。


*博客內容為網(wǎng)友個(gè)人發(fā)布,僅代表博主個(gè)人觀(guān)點(diǎn),如有侵權請聯(lián)系工作人員刪除。



關(guān)鍵詞: C語(yǔ)言

相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>