原始碼閱讀 十個C開源專案

2021-06-26 21:42:50 字數 1111 閱讀 3668

cmockery是google發布的用於c單元測試的乙個輕量級的框架。它很小巧,對其他開源包沒有依賴,對被測試**侵入性小。cmockery的源**行數不到3k,你閱讀一下will_return和mock的源**就一目了然了。

主要特點:

免費且開源,google提供技術支援;

輕量級的框架,使測試更加快速簡單;

避免使用複雜的編譯器特性,對老版本的編譯器來講,相容性好;

並不強制要求待測**必須依賴c99標準,這一特性對許多嵌入式系統的開發很有用

libev是乙個開源的事件驅動庫,基於epoll,kqueue等os提供的基礎設施。其以高效出名,它可以將io事件,定時器,和訊號統一起來,統一放在事件處理這一套框架下處理。基於reactor模式,效率較高,並且**精簡(4.15版本8000多行),是學習事件驅動程式設計的很好的資源。

lua很棒,lua是巴西人發明的,這些都令我不爽,但是還不至於臉紅,最多眼紅。

nginx("engine x") 是乙個高效能的 http 和反向**伺服器,也是乙個 imap/pop3/smtp **伺服器 。nginx 是由 igor sysoev 為俄羅斯訪問量第二的rambler.ru站點開發的,它已經在該站點執行超過四年多了。igor 將源**以類bsd許可證的形式發布。自nginx 發布四年來,nginx 已經因為它的穩定性、豐富的功能集、 示例配置檔案和低系統資源的消耗而聞名了。

unix v6 的核心源**包括裝置驅動程式在內 約有1 萬行,這個數量的源**,初學者是能夠充分理解的。有一種說法是乙個人所能理解的**量上限為1 萬行,unix v6的核心源**從數量上看正好在這個範圍之內。看到這裡,大家是不是也有「如果只有1萬行的話沒準兒我也能學會」的想法呢?

備註:根據 "im鑫爺"的建議,增加了redis和nginx,同時刪除tinyhttp和cjson

cjson是c語言中的乙個json編解碼器,非常輕量級,c檔案只有500多行,速度也非常理想。

cjson也存在幾個弱點,雖然功能不是非常強大,但cjson的小身闆和速度是最值得讚賞的。其**被非常好地維護著,結構也簡單易懂,可以作為乙個非常好的c語言專案進行學習。專案主頁:

**:

101 原始碼閱讀 十個C開源專案

cmockery是google發布的用於c單元測試的乙個輕量級的框架。它很小巧,對其他開源包沒有依賴,對被測試 侵入性小。cmockery的源 行數不到3k,你閱讀一下will return和mock的源 就一目了然了。主要特點 lua很棒,lua是巴西人發明的,這些都令我不爽,但是還不至於臉紅,最...

十個最值得閱讀學習的C開源專案代

cmockery是google發布的用於c單元測試的乙個輕量級的框架。它很小巧,對其他開源包沒有依賴,對被測試 侵入性小。cmockery的源 行數不到3k,你閱讀一下will return和mock的源 就一目了然了。主要特點 免費且開源,google提供技術支援 輕量級的框架,使測試更加快速簡單...

十個值得研究的c開源專案

算是比較輕量級的開源專案,作為學習研究c語言,提公升c語言功底!好處很多很多!cmockery是google發布的用於c單元測試的乙個輕量級的框架。它很小巧,對其他開源包沒有依賴,對被測試 侵入性小。cmockery的源 行數不到3k,你閱讀一下will return和mock的源 就一目了然了。主...