.. _c_opensource_project: ================== C开源项目 ================== 学习C语言是一个长期的实践过程,有一些开源项目适合参考学习,并通过代码解析、修改来体会和借鉴优秀开源项目: - 尽量选择简洁和经典的开源项目: 2000行以内最好,其次是一万行以内的 - 有些开源项目经过多年迭代已经非常复杂,不利于学习: 可以选择早期有代表性的版本 - 刚开始学习的方法是抄一遍,编译,debug,加入自己的想法和目标进行修改,慢慢理解,最终融汇贯通: 这是一个非常耗时的过程,但是也是最好的学习方式 .. note:: 以下一些项目摘抄作为参考,有待实践 开源项目精选 =============== - `GitHub: Lua `_ Lua是ANSI C编写,代码量少而精巧(1.5w) - `GitHub: libevent `_ libevent是开源事件驱动库,是学习事件驱动编程的资源 - `GitHub: redis `_ KV数据库,并且有业内书指导,应用非常广泛 - `GitHub: Seafile `_ 云存储系统提供权限保护和协作功能 - `GitHub: zlog `_ 高性能C日志库,代码2k行 - `GitHub: FFmpeg `_ 多媒体处理库,大多数视频转换处理软件的基础 - :ref:`sqlite` 简洁的高性能SQL数据库引擎,广泛使用 参考 ======= - `C语言开源项目 `_ - `十个超赞的C语言开源项目,强烈推荐! `_