最值得阅读学习的 10 个 C 语言开源项目代码

标签: 最值 阅读 学习 | 发表时间:2014-10-29 11:27 | 作者:
出处:http://www.iteye.com

1. Webbench

Webbench是一个在linux下使用的非常简单的网站压测工具。它使用fork()模拟多个客户端同时访问我们设定的URL,测试网站在压力下工作的性能,最多可以模拟3万个并发连接去测试网站的负载能力。Webbench使用C语言编写, 代码实在太简洁,源码加起来不到600行。下载链接: http://home.tiscali.cz/~cz210552/webbench.html

2. Tinyhttpd

tinyhttpd是一个超轻量型Http Server,使用C语言开发,全部代码只有502行(包括注释),附带一个简单的Client,可以通过阅读这段代码理解一个 Http Server 的本质。下载链接: http://sourceforge.net/projects/tinyhttpd/

3. cJSON

cJSON是C语言中的一个JSON编解码器,非常轻量级,C文件只有500多行,速度也非常理想。

cJSON也存在几个弱点,虽然功能不是非常强大,但cJSON的小身板和速度是最值得赞赏的。其代码被非常好地维护着,结构也简单易懂,可以作为一个非常好的C语言项目进行学习。项目主页: http://sourceforge.net/projects/cjson/

4. CMockery

cmockery是google发布的用于C单元测试的一个轻量级的框架。它很小巧,对其他开源包没有依赖,对被测试代码侵入性小。cmockery的源代码行数不到3K,你阅读一下will_return和mock的源代码就一目了然了。

主要特点:

  1. 免费且开源,google提供技术支持;
  2. 轻量级的框架,使测试更加快速简单;
  3. 避免使用复杂的编译器特性,对老版本的编译器来讲,兼容性好;
  4. 并不强制要求待测代码必须依赖C99标准,这一特性对许多嵌入式系统的开发很有用

下载链接: http://code.google.com/p/cmockery/downloads/list

5. Libev

libev是一个开源的事件驱动库,基于epoll,kqueue等OS提供的基础设施。其以高效出名,它可以将IO事件,定时器,和信号统一起来,统一放在事件处理这一套框架下处理。基于Reactor模式,效率较高,并且代码精简(4.15版本8000多行),是学习事件驱动编程的很好的资源。 下载链接: http://software.schmorp.de/pkg/libev.html

6. Memcached

Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提供动态数据库驱动网站的速度。Memcached 基于一个存储键/值对的 hashmap。Memcached-1.4.7的代码量还是可以接受的,只有10K行左右。下载地址: http://memcached.org/

7. Lua

Lua很棒,Lua是巴西人发明的,这些都令我不爽,但是还不至于脸红,最多眼红。

让我脸红的是Lua的源代码,百分之一百的ANSI C,一点都不掺杂。在任何支持ANSI C编译器的平台上都可以轻松编译通过。我试过,真是一点废话都没有。Lua的代码数量足够小,5.1.4仅仅1.5W行,去掉空白行和注释估计能到1W行。下载地址: http://www.lua.org/

8. SQLite

SQLite是一个开源的嵌入式关系数据库,实现自包容、零配置、支持事务的SQL数据库引擎。 其特点是高度便携、使用方便、结构紧凑、高效、可靠。足够小,大致3万行C代码,250K。 下载地址: http://www.sqlite.org/ 。

9. UNIX v6

UNIX V6 的内核源代码包括设备驱动程序在内 约有1 万行,这个数量的源代码,初学者是能够充分理解的。有一种说法是一个人所能理解的代码量上限为1 万行,UNIX V6的内核源代码从数量上看正好在这个范围之内。看到这里,大家是不是也有“如果只有1万行的话没准儿我也能学会”的想法呢?

另一方面,最近的操作系统,例如Linux 最新版的内核源代码据说超过了1000 万行。就算不是初学者,想完全理解全部代码基本上也是不可能的。下载地址: http://minnie.tuhs.org/cgi-bin/utree.pl?file=V6

10. NETBSD

NetBSD是一个免费的,具有高度移植性的 UNIX-like 操作系统,是现行可移植平台最多的操作系统,可以在许多平台上执行,从 64bit alpha 服务器到手持设备和嵌入式设备。NetBSD计划的口号是:”Of course it runs NetBSD”。它设计简洁,代码规范,拥有众多先进特性,使得它在业界和学术界广受好评。由于简洁的设计和先进的特征,使得它在生产和研究方面,都有卓越的表现,而且它也有受使用者支持的完整的源代码。许多程序都可以很容易地通过NetBSD Packages Collection获得。下载地址: http://www.netbsd.org/



感谢 cao345657340 投递这篇资讯

资讯来源: 伯乐在线

已有 4 人发表留言,猛击->> 这里<<-参与讨论


ITeye推荐



相关 [最值 阅读 学习] 推荐:

最值得阅读学习的 10 个 C 语言开源项目代码

- - ITeye资讯频道
Webbench是一个在linux下使用的非常简单的网站压测工具. 它使用fork()模拟多个客户端同时访问我们设定的URL,测试网站在压力下工作的性能,最多可以模拟3万个并发连接去测试网站的负载能力. Webbench使用C语言编写, 代码实在太简洁,源码加起来不到600行. 下载链接: http://home.tiscali.cz/~cz210552/webbench.html.

詹宏志谈学习与阅读–阅读笔记(4)

- SiL - 战隼的学习探索
终于把这个文章合集整理完了,在整理的过程中又重新阅读了几遍,从新的思考一下学习与阅读的关系,觉得很有收获. 能了解詹宏志看问题的角度,很不错. 31、做好“转业转职”的准备. 有些人工作地点愈来愈不可预测,随着公司的发展,你会随时需要具备机动能力,会到一个你想都没想过的地方去工作. 那是因为你的工作要求、工作地点、工作机会的型态都在变化,所以每一个人在这一生中就需要有“转业转职”的准备.

【翻译练习】指导英语学习者如何阅读

- - CSDN博客推荐文章
原文出处:  http://www.englishclub.com/reading/guide.htm.       你想变成一个优秀的读者吗. 很多英语学习者心中都有这个目标. 英语吧(EnglishClub)为英语学习者提供的阅读指南可以帮助到你.       在这个指南中,你将了解到:阅读为什么很重要;哪些阅读素材对英语语言学习者有用;在英语语言阅读测试中如何建立典型的任务;为如何变成强大的阅读者提供综合性的阅读提示;提供在哪里可以找到阅读素材;提供如何更好理解的阅读策略;还有通用的阅读策略供选择.

对于初学者 哪几种编程语言最值得你去学习

- - 外刊IT评论
有几个人曾经问我,有哪些最有用或最好的编程语言适宜学习. HTML/CSS不谈,我认为答案取决于你想通过编程来做什么. 对只用一种语言来构建某个项目的情况而言,Javascript和它的框架是非常有用的. Angular.js可以控制展示给用户的网站前端. Node.js将作为管理网站所有内容的网络服务器.

零基础入门深度学习(5) - 循环神经网络 - 作业部落 Cmd Markdown 编辑阅读器

- -
零基础入门深度学习(5) - 循环神经网络. 无论即将到来的是大数据时代还是人工智能时代,亦或是传统行业使用人工智能在云上处理大数据的时代,作为一个有理想有追求的程序员,不懂深度学习(Deep Learning)这个超热的技术,会不会感觉马上就out了. 现在救命稻草来了,《零基础入门深度学习》系列文章旨在讲帮助爱编程的你从零基础达到入门级水平.

移动阅读与阅读

- - 扯氮集--上海魏武挥的博客 - 扯氮集--上海魏武挥的博客
近日,由中国新闻出版研究院组织实施的第十次全国国民阅读调查显示,国民在数字阅读这个维度上的比例有所上升,从11年的38.6%小幅增加到12年的40.3%,而电子书阅读,更是有比较可观的增幅,从11年的人均1.42本到12年的2.35本. 另外一个消息是,搜狐移动设备上的新闻客户端,累计下载安装量已经破亿.

伪阅读

- coen - 情书
    在一次百老汇大街边的午餐交谈中,关于阅读,我和我的荷兰同事达成一个共识:学术生涯实际上是一个摧毁阅读的过程.    从道理上来说,怎么会呢. 从事学术工作,尤其是社会科学的学术工作,我们最有条件进行大量阅读了.     但事实是,学术工作从以下几方面摧毁了阅读及其乐趣:第一,为了“研究”需要,你的阅读范围一般都非常狭窄.

社会化阅读:阅读的未来

- waco - 互联网的那点事...
本文来自MTC联合创始人,社会化阅读观察员钟雄的投稿,新浪微博@钟雄这Y. 从传统阅读到数字阅读,不仅是媒介的变化,更是阅读习惯的改变,它降低了阅读门槛,提高了获取知识的效率,推动了文明的进程,更催生了网络原创文学. 但是,看到自己想看的内容,并与志同道合的朋友交流分享的需求并没有被很好的满足,因此以读者为中心,基内内容获取个性化,分享交流社区化的社会化阅读正成为阅读的未来.

未来的阅读

- xj - 左岸读书_blog
雪茉莉灵感突至,写了一篇对未来阅读的设想. 2010年年末的时候,听了一场主题为“新媒体的未来”的讲座,引发了我对未来阅读模式的思考,在我的想象中,未来的阅读体验应该是这样的:. 下班的途中,坐在车上,我从包包里拿出了我的“墨宝”,开始阅读. “墨宝”(Mobile Book Reader)是类似于Ipad的东东,但是比Ipad轻、薄、更小巧,更时尚,功能更强大,使用更方便.

《观止》阅读录

- Calvin998 - 阿朱=行业趋势+开发管理+架构
观止这本书讲的是微软在1989年-1993年这5年开发WINDOWS NT的故事.观止,是叹为观止的意思.意思是好到了极点.但事实上WINDOWS NT的产生九曲九弯、筋疲力尽、歇斯底里、极度焦虑、几乎失控,但最终还是完成. 卡特勒是NT的开发主管,是这个开发团队的领袖,是主宰一切的头. 他一直是争强好胜、斗勇好狠的角.