c语言定时器_分享10个值得关注的C语言开源项目
十个最值得阅读学习的C开源项目代码
1.Webbench
2. Tinyhttpd
3. cJSON
4. CMockery
5. Libev
6. Memcached
7. Lua
8. SQLite
9. UNIX v6
10. NETBSD
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 的源代码就一目了然了。
主要特点:
免费且开源,google 提供技术支持;
轻量级的框架,使测试更加快速简单;
避免使用复杂的编译器特性,对老版本的编译器来讲,兼容性好;
并不强制要求待测代码必须依赖 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 获得。
c语言定时器_分享10个值得关注的C语言开源项目相关推荐
- 分享10个值得关注的C语言开源项目
来源于网络,如有侵权,告知必删.
- GitHub 上都有哪些值得关注学习的 iOS 开源项目?
GitHub 上都有哪些值得关注学习的 iOS 开源项目?修改 如果仅按照 GitHub 月流行查看 Objective-C 项目的话有 ── Trending Objective-C reposit ...
- java 关注公众号_推荐10个值得关注的技术公众号
原标题:推荐10个值得关注的技术公众号 今天推荐一些行业内优质的技术公众号,这些号的主人在技术圈深耕多年,关注这些技术号可以让系统了解学习他们分享的技术经验,让我们的技术提升事半功倍. 程序员内推圈 ...
- .NET开发人员值得关注的七个开源项目
微软近几年在.NET社区开源项目方面投入了相当多的时间和资源,不禁让原本对峙的开源社区阵营大吃一惊,从微软.NET社区中的反应来看,微软.NET开发阵营对开源工具的依赖正日益增强,本文就为所有.NET ...
- 分享10个适合初学者学习的C开源项目代码
1.Webbench Webbench 是一个在 linux 下使用的非常简单的网站压测工具.它使用 fork ()模拟多个客户端同时访问我们设定的 URL,测试网站在压力下工作的性能,最多可以模拟 ...
- 分享10个值得每天一看的精品网站,可以让你全方面得到提升,每一个都会让你大开眼界...
分享10个值得每天一看的精品网站,可以让你全方面得到提升,每一个都会让你大开眼界. 1:Slant https://www.slant.co/ Slant 是一个帮助你找到最好的产品和工具的一个实用网 ...
- linux内核7大功能,Linux Kernel5.10十个值得关注的功能
Linux Kernel 5.10 有望在本周末发布,外媒 Phoronix 盘点了 10 个值得关注的改进和新功能.5.10 不仅是 2020 年最后一个内核版本,而且还是长期支持(LTS)版本. ...
- 10月份值得关注的10款P2E链游
十月份最值得关注的边玩边赚游戏是什么?一些游戏将发布重大更新,而其他游戏将进行首次预售.作为一个靠游戏赚钱的玩家,你总是在寻找下一个大热门,但也不应该忘记现在还在早期.<玩游戏赚钱线上杂志> ...
- Node 应用篇!推荐 10 个好用的 Node 的开源项目 YYDS
大家好,我是你们的 猫哥,那个不喜欢吃鱼.又不喜欢喵 的超级猫又在线营业啦 ~ 平时如何发现好的开源项目,可以看看这篇文章:GitHub 上能挖矿的神仙技巧 - 如何发现优秀开源项目 1. puppe ...
最新文章
- 33.搜索旋转排序数组
- Linux下支持rz/sz上传下载文件
- stl_vector.h
- Linux入门之系统启动过程及初始化----“翻滚吧,牛宝宝”
- 数据库有哪些设计技巧
- java多线程中的死锁、活锁、饥饿、无锁都是什么鬼?
- matlab电机标定,基于模型的电机标定及高精度电机建模
- QML笔记-Particle的基本使用(粒子系统的基本使用)
- (07)FPGA基本组成单元
- Java hibernate假外键_JAVA基础:Hibernate外键关联与HQL语法
- javascript traverse object attributes 遍历对象属性
- linux 安装Paramiko模块安装和使用
- poj 3080 Blue Jeans kmp+枚举
- 手机浏览器一键跳转微信加好友的方法
- 苹果CMS v10模板:大橙子vfed完美版视频网站模板
- Semantic-UI 的词语
- OEM,ODM,OBM,JDM概念
- [知识点滴]HTML5元素垂直居中那些事?
- 神经网络中偏置的作用
- 磁盘管理命令df和du的区别,以及du -sh ./与du -sh ./*区别
热门文章
- 数学之美 系列 12 - 余弦定理和新闻的分类
- python可以这样学豆瓣_python爬虫学习之路:豆瓣爬虫练习
- matlab中服从高斯分布的矩阵_推荐基础算法之矩阵分解PMF
- 2019-11-23 Modern Family Scripts (01 “Pilot”)
- ZooKeeper 之快速入门
- POJ 1486 Sorting Slides(二分图完全匹配必须边)题解
- 设计模式之工厂模式(Factory)(3)
- Mybatis通过colliection属性递归获取菜单树
- JQ中的方法、事件及动画
- 【Beta阶段】M2事后分析