C 语言资源大全中文版

wcxd1938 6年前

来自: https://github.com/jobbole/awesome-c-cn?hmsr=toutiao.io&utm_medium=toutiao.io&utm_source=toutiao.io

C 语言资源大全中文版

我想很多程序员应该记得 GitHub 上有一个 Awesome - XXX 系列的资源整理。 awesome-c 是 koz.ross 发起维护的 C 语言资源列表,内容包括了:构建系统、编译器、数据库、加密、初中高的教程/指南、书籍、库等等。

Awesome 系列虽然挺全,但基本只对收录的资源做了极为简要的介绍,如果有更详细的中文介绍,对相应开发者的帮助会更大。这也是我们发起这个开源项目的初衷。

我们要做什么?

如何参与本项目?

从下面的目录来看,本项目的工作量小不了,所以非常期待能有更多程序员一起来参与。

不过加入前,有几个小要求:

  • 英文还不错,能读懂英文并用自己的话复述;
  • 在用 C 语言;

如有兴趣,请加 QQ:50872495。加 Q 时请注明「C语言大全」。// 这不是 QQ 群。

本项目的参与者

注:名单不分排名,不定期补充更新

目录

  • 构建系统
  • 编译器
  • 加密
  • 数据库
  • 文档生成
  • 编辑器
  • 环境
  • 框架
  • 游戏编程
    • 引擎
    • 资源
  • 通用编程
  • 图形
  • GUI
  • JSON
  • 学习、参考和指南
    • 在线资源
      • 参考
      • 初级
      • 中级
      • 高级
      • 自学资源
    • 实体书
      • 参考
      • 初级
      • 中级
      • 高级
  • 多媒体
  • 网络编程
    • Web 框架
  • 数值计算
  • 并行编程
  • 正则表达式
  • 序列化
  • 源码集锦
  • 标准库
  • 字符串处理
  • 测试工具
  • 文本编辑器扩展
    • Emacs
    • Vim
  • 工具
  • 其他工具
  • XML
  • 其他资源
    • 有影响力的书
    • 知名网站/博客
    • 微信公众号

构建系统

下面是一些 C 项目的自动化构建和测试工具。

  • aimake - 一个被设计来避免复杂配置的构建工具。 GNU GPL3 或更高版本。
  • Autoconf - 一个可扩展的 M4 宏指令包,提供命令行脚本来自动配置软件源码包,是 Autotools 的一部分。 GNU GPL3 或更高版本。
  • Automake - 一个自动生成符合 GNU 代码标准的 Makefile.in 文件的工具。需要与 Autoconf 配合使用,它也是 Autotools 的一部分。 GNU GPL3 或更高版本。
  • Jam - 一个构建系统,它被设计的比make更加易用。隐式地理解 C 的构建规则。 Jam License
  • Libtool - 一个通用库支持脚本,是 Autotools 的一部分。 GNU GPL3 或更高版本。
  • Meson - 一个非常快,用户友好的构建系统,基于 Ninja。 Apache2.0 .

编译器

  • Clang - 一个基于 LLVM 的 C 的编译器,支持 C11 标准。 NCSA .
  • CompCert - 一个经过充分验证的 C 编译器。支持几乎所有的 C89 标准。 GNU GPL2.1 或更高版本。
  • GCC - 在它的编译器集合中提供了 C 编译器。支持 C11 和 OpenMP 的标准。 GNU GPL3 或更高版本。
  • PCC - 一个值得尊敬的 C 编译器,支持 C99 标准。 Various licenses ,完全免费。
  • TCC - 一个迷你,速度快的 C 编译器,支持 C99(除了复杂的类型)。 GNU LGPL2.1

加密

数据库

下面列出了基于 C API 的数据库和数据存储

  • BerkeleyDB - 一个高性能的嵌入式键值对数据库。 GNU AGPLv3
  • Hiredis - 一个极简的 Redis 客户端。 3-clause BSD
  • LMDB - 一个极快,极简的嵌入式键值对数据存储系统。 newOpenLDAP
  • MariaDB - 一个强壮,可扩展和可靠的 SQL 服务器,设计来作为 MySQL 的替代品。 3-clause BSD
  • mongo-c-driver - 一个高性能的 MongoDB 客户端。 Apache2.0 .
  • PostgreSQL - 一个强大的对象关系数据库系统。 PostgreSQL licence
  • recutils - 一个工具和 C 库的集合,用于访问可编辑,纯文本的名为 recfiles 的数据库文件。 GNU GPL3 或更高版本。
  • Redis - 一个先进的键值对存储系统。 3-clause BSD
  • sophia - 一个现代,可嵌入的键值对数据库。 FreeBSD
  • SQLite - 一个自包含,无服务器,零配置,支持事务的 SQL 数据库引擎,包括 C 接口。公开领域。
  • UnQLite - 一个自包含,无服务器,零配置,支持事务的 NoSQL 数据库引擎,包括 C 接口。 FreeBSD

文档生成

  • Cxref - 生成 C 程序的文档,支持 LaTeX,HTML, RTF 或者 SGML 的格式。 GNU GPL2.1
  • DocOnce - 一种朴素的标签标记语言,可以用来生成多种格式的文档。 3-clause BSD .
  • Doxygen - 一个事实上的标准工具,用于从注释的代码中生成 C 文档。能够生成多种格式的文档。 GNU GPL2.1
  • GTK-Doc - 一个从注释的代码中生成 C 文档的工具,支持 Autotools GNU GPL2.1 (代码), GNU FDL1.1

编辑器

这些是特别精致,IDE 类型的编辑器。如果你想要一个程序员的文本编辑器,看别的地方。此外,不管你选择哪一款编辑器,它都支持 C。

环境

下面列出了被设计来引领 Windows 进入支持 C 的 21 世纪的技术。

框架

这一节包括提供数据结构的大型库和你所期待“现代”的标准库。

  • APR - Apache Portable Runtime;另一个跨平台的实用函数库。 Apache2.0
  • C Algorithms - 一个常用算法和数据结构的集合。
  • CPL - The Common Pipeline Library;一系列详尽,高效和强壮的软件工具包。 GNU GPL2.1
  • EFL - 一个大型实用数据结构和函数的的集合。多种许可证,完全免费。
  • GLib - 一个便携,高效和强大的实用函数和数据结构库。 GNU LGPL2.1
  • GIO - 一个现代和易用的 VFS API。[GNU LGPL2.1]。
  • GObject - 一个 C 的面向对象系统和对象模型。 GNU LGPL2.1
  • libnih - 一个轻量级的 C 函数和数据结构库。 GNU GPL2.1
  • libU - 一个提供基本实用函数的迷你库,包括内存分配,字符串处理和日志功能。
  • PBL - 一个包括实用函数,特色数据结构等的大型库。 GNU LGPL2.1 及更高版本(库), GNU GPL2.1 及更高版本(测试代码)。
  • qlibc - 一个简单且强大的 C 库,当我们想要小且轻的库时,可作为 Glib 的替代品。qLib license (类似于 FreeBSD ).
  • stb - 一系列单文件 C 库。公共领域。
  • libcstl :标准C语言通用数据结构和常用算法库。 官网

游戏编程

引擎

这些作为 C 游戏编程代码的例子。

  • Corange :一个纯 C 的游戏引擎。官网
  • FreeBSD
  • Darkplaces - 一个 Quake2 引擎的修改版本。 GNU GPL2.1
  • ioquake3 - Quake3 引擎,终于免费啦。 GNU GPL2.1
  • Orx - 一个便携,轻量级,插件化,数据驱动,面向 2D 的游戏引擎。 zlib
  • Quake2 - Quake2 引擎。 GNU GPL2.1
  • Spearmint - 一个为 FPS 游戏设计的引擎。 GNU GPL3 及更高版本。

资源

这些是筛选过的,对游戏编程有用的库。

  • Allegro - 一个跨平台,视频游戏开发和多媒体库。 zlib
  • Chipmunk2D - 一个快且轻量级的 2D 游戏物理库。 Expat
  • CSFML - 一个用 C 封装的 SFMLzlib
  • FreeGLUT - 一个替代性的 OpenGL 实用工具包。允许用 OpenGL 上下文创建和管理窗口。 X11
  • GLFW - 一个使用 OpenGL 上下文创建窗口的多平台库。 zlib
  • libao - 一个有多种输出的跨平台音频库。 GNU GPL2.1 及更高版本。
  • RetroArch - libretro 的参考前端。 GNU GPL3
  • SDL - 一个跨平台库,通过 OpenGL 提供音频,键盘,鼠标,操纵杆和图形硬件的底层访问。 zlib
  • SDL2 - 一个跨平台库,通过 OpenGL 提供音频,键盘,鼠标,操纵杆和图形硬件的底层访问。这是最新版本。 zlib

通用编程

  • klib - 小且轻量级的常用算法和数据结构实现。 Expat

图形

GUI

这些具体来说就是 控件工具包

JSON

  • Jansson - 一个编码,解码和处理 JSON 的 C 库。 Expat
  • jsmn - 一个极简的 JSON 解析器。 Expat
  • json-c - 一个处理 JSON 的库。 Expat
  • WJElement - 高级 JSON 处理库,支持 JSON Schema。任意版本的 LGPL。
  • YAJL - 一个很快的 JSON 流解析 C 库。 ISC

学习、参考和指南

下面列出了学习 C 编程的资源,或者跟 C 编程相关的有用的东西。

在线

参考

初级

中级

高级

自学教程

实体书

参考资料

初级

中级

高级

多媒体

  • FFMPEG - 一个完整,跨平台的录音,转换和流化视频以及音频的解决方案。 GNU LGPL2.1 或更高版本,部分是 GNU GPL2.1 或更高版本。
  • GStreamer - 一个声音和可视化媒体的框架。 GNU LGPL2.1
  • lodepng - 一个简单的 PNG 图像解码器和编码器,不需要其他依赖。 3-clause BSD .

网络编程

  • asnlc - 一个把 ASN.1 规范转换为 C 代码的编译器。 FreeBSD
  • czmq - 一个 ZeroMQ 的高级绑定。
  • GNU adns - 一个高级,易用,异步的 DNS 客户端和实用工具。 GNU GPL3 及更高版本。
  • GNU SASL - 一个简单身份认证和安全层和一些常见 SASL 机制的实现。 GNU GPL3 及更高版本。
  • GnuTLS - 一个安全通信库,实现了 SSL,TLS 和 DTLS。 GNU LGPL2.1 及更高版本。
  • gumbo-parser - 一个 C99 标准的 HTML5 解析库。 Apache2.0
  • http-parser - 一个 HTTP 请求回应解析器。 Expat
  • ldns - 一个简化 DNS 编程的库。 3-clause BSD
  • libcurl - 一个客户端的 URL 转换库,支持多种格式。 curl license
  • LibEtPan - 一个邮件库,支持 IMAP,SMTP,POP 和 NNTP 网络协议。 3-clause BSD
  • libev - 一个事件驱动库。 FreeBSD .
  • libevent - 一个在网络服务器中事件驱动库的可替代品。 3-clause BSD
  • libgss - 通用安全服务。 GNU GPL3 或更高版本。
  • libhttpd - 一个给应用或嵌入式设备添加基本 Web 服务器功能的库。 GNU GPL2
  • libidn - Stringprep,Punycode 和 IDNA 规范的实现。 GNU GPL3 或更高版本。
  • libmicrohttpd - 一个迷你库,可作为其他应用的一部分,让运行 HTTP 服务器变得简单。 GNU LGPL2.1 或更高版本。
  • libsoup - 一个 GNOME HTTP 客户端/服务器库,使用了 GObject。 GNU LGPL2.1
  • lwan - 一个实验性,可扩展,高性能的 HTTP 服务器。 GNU GPL2.1
  • mongoose - 基于 C 的嵌入式 Web 服务器。 GNU GPL2.1
  • nanomsg - 一个基于 C 的 ZeroMQ 实现。 Expat
  • onion - 易于使用的 HTTP 服务器库。 Apache2.0
  • OpenSSL - 一个 SSL 和 TLS 协议的实现,还包括一个加密库。 Dual Licensed under the OpenSSL License and the SSLeay License
  • oSip - 一个基于 C 的 SIO 实现,没有额外的依赖。 GNU LGPLv2.1 或更高版本。
  • s2n - 一个 C99 标准的 TLS/SSL 协议的实现,简单,快并且以安全优先。 Apache2.0
  • socket99 - BSD 套接字 API 的 C99 封装。 ISC
  • Tox - 一个通信平台,被设计为 Skype 杀手。 GNU GPL3
  • twitc - 一个与 推ter OAuth API 交互的迷你 C 库。 Expat

Web框架

  • balde - 一个基于 GLib 的 C 微框架。 GNU LGPLv2.1

数值计算

  • apophenia - 一个用于统计和科学计算的库。 GNU GPL2.1
  • ATLAS - 自动调谐线性代数软件。 3-clause BSD
  • BLAS - Basic Linear Algebra Subprograms;提供向量和矩阵操作的一系列操作。 BLAS license
  • Cuba - 一个计算多维的数值积分的库。 GNU LGPLv3
  • FFTW - The Fastest Fourier Transform in the West;一个高度优化的快速傅立叶变换例程。 GNU GPL2.1 或更高版本。
  • FLINT - Fast Library for Number Theory;一个支持算数,多项式,幂级数和矩阵等。 GNU GPL2.1 或更高版本。
  • GLPK - GNU Linear Programming Kit;一个求解大规模线性规划,混合整数规划和其他相关问题。 GNU GPL3 或更高版本。
  • GMP - GNU Multple Precision Arithmetic Library;一个支持任意精度计算的库。双重许可 GNU GPL2.1GNU LGPLv3
  • GNU MPC - 一个支持复杂数字计算的库。 GNU LGPL3 或更高版本。
  • GNU MPFR - 一个支持任意精度的浮点数计算库。 GNU LGPL3 或更高版本(大多数最近版本), GNU LGPL2.1 或更高版本(2.4.x 之前)。
  • GNU MPRIA - 一个支持多精度合理区间运算的可扩展数学库。 GNU GPL3 或更高版本。
  • GSL - The GNU Scientific Library;一个精确的数值计算库。 GNU GPL3
  • KISS FFT - 一个非常快的傅里叶变换库。 3-clause BSD
  • LAPACKE - 一个 LAPACK 的 C 接口。 3-clause BSD
  • PARI/GP - 一个数论的计算机代数系统,包括 C 编译器。 GNU GPL2.1 或更高版本。
  • PETSc - 一系列数据结构和例程,用于计算由偏微分方程建模的应用程序的可扩展并行解。 FreeBSD
  • SLEPc - 一个在并行计算机中的解决大型,稀疏特征值问题的软件库。 GNU LGPL3
  • Yeppp! - 非常快,SIMD 优化的数学库。 3-clause BSD

并行编程

  • cchan - 一个线程间通信通道构建的小型库。公共领域。
  • ck - 并发原语,安全内存回收机制和非阻塞数据结构。 FreeBSD
  • mill - 用 C 写成的 Go 风格并发。 X11
  • MPICH - MPI 的另一种实现。 MPICH licence
  • OpenMP - 一组 C 编译指令,使其易于并行化代码。标准(许可不适用)。
  • OpenMPI - 一个消息传输接口实现。 3-clause BSD
  • PETSc - 一系列数据结构和例程,用于计算由偏微分方程建模的应用程序的可扩展并行解。 FreeBSD
  • pth - 一个非抢占式优先级调度多线程执行的可扩展实现。 GNU GPL3 或者更高版本。
  • pthreads - POSIX 线程库。标准(没有适用的许可)。
  • SLEPc - 一个在并行计算机中的解决大型,稀疏特征值问题的软件库。 GNU LGPL3
  • TinyCThread - 一个可扩展,小型的 C11 标准线程 API 实现。 zlib

正则表达式

有些人遇到问题时就会想:“啊,我知道了,我可以使用正则表达式”。于是现在他们有了两个问题。- Jamie Zawinski。

  • PCRE - 与 Perl 5 正则表达式完全相同的实现。 3-clause BSD
  • SLRE - Super Light Regular Expression library;一个 Perl 正则表达式语法子集的迷你实现。 GNU GPL2.1
  • TRE - 一个与 POSIX 一致,充满特色的正则表达式库。 FreeBSD
  • PS:关于正则表达式,deerchao 有篇文章不错 《 正则表达式 30 分钟入门教程

序列化

  • c-capnproto - 一个 Cap'n Proto 序列化协议的实现。 Expat
  • cmp - 一个 MessagePack 序列化协议的实现。 Expat
  • libavro - 一个 Avro 数据序列化系统的 C 实现。 Apache2.0
  • mpack - 另一个 MessagePack 序列化协议的实现。 Expat
  • protobuf-c - 一个 Google Protocol Buffer 的 C 实现。 FreeBSD
  • xdr - External Data Representation;数据序列化标准。标准(没有可用许可)。

源码集锦

下面包含了一些小型源码集合。如果你想要大型且成熟的,看《框架》那一节。

  • CCAN - 模仿 Perl 的 CPAN,这是一个大的实用 C 代码集合。完整的列表在 这里 。多种许可(所有都是免费软件)。
  • clib - 一个 C 软件包管理器,配备了一堆自己的库。 Expat
  • gnulib - 通用 GNU 代码的集合。多种许可证,全部免费。
  • libdjb - 做各种事情的库的集合。(显然)公共领域。

标准库

下面包括了标准 C 库。

  • Bionic - 谷歌为 Android 开发的 C 标准库。 3-clause BSD
  • dietlibc - 标准 C 库,可能是最小的二进制文件。 GNU GPL2.1
  • glibc - GNU C 库。一个 C 标准库的实现。 GNU LGPL2.1
  • musl - 标准 C 库,兼容 POSIX 2008 和 C11,为静态链接设计。 Expat

字符串处理

  • bstrlib - 更好的字符串处理库。双重许可, 3-clause BSDGNU GPL2.1
  • ICU - International Components for Unicode;提供 Unicode 支持的库。 ICU license
  • libunistring - 处理 Unicode 字符串的 C 库。 GNU LGPL3
  • libgiconv - 文本转换库。 GNU LGPL2.1 (库), GNU GPL3 (编码转换程序)。
  • SDS - Simple Dynamic Strings;一个用简单方式处理 C 字符串的库,而且兼容标准 C 字符串函数。可通过clib 使用。 FreeBSD
  • shoco - 一个小型文本压缩器。 Expat
  • smaz - 一个高效的字符串压缩库。 3-clause BSD .

测试工具

  • CHEAT - 一个非常简单的单元测试框架。 FreeBSD
  • Check - 一个 C 的单元测试框架。 GNU LGPL2.1
  • CMock - 一个 C 的 mock/stub 生成器。
  • cmocka - 一个支持 mock 对象的单元测试框架。 Apache2.0
  • Criterion - 一个 KISS 风格,非侵入式的 C 测试框架。 Expat
  • CUnit - 另一个 C 的单元测试框架。 GNU LGPL2.0
  • minunit - 极小的 C 单元测试框架。 Expat
  • Unity - 一个简单的 C 单元测试框架。 Expat

文本编辑器扩展

在几乎任何像样的文本编辑器支持 C 之际,有一些扩展,让编辑器更加令人愉快。下面是根据编辑器分目录的。

Emacs

  • CEDET - Collection of Emacs Development Environment Tools;给 Emacs 提供一种类似 IDE 的特点,是内建的。 GNU GPL3 或更高版本。
  • Flycheck - 现代语法检查。对于 C,它可以使用 GCC 或者 Clang 作为后端。 GNU GPL3 或更高版本。
  • Yasnippet - 一个模板系统,支持 C 的通用代码片段。 GNU GPL3 或更高版本。

Vim

工具

下面是实用的程序列表,包括了帮助你编写和调试 C 代码的库或者编译器,不包括编辑器。

  • adlint - 一个静态分析器。支持完全的 C89 标准和部分 C99 标准。 GNU GPL3 或更高版本。
  • Artistic Style - 一个支持 C 的小而快的自动化代码格式化工具。 GNU LGPL3
  • address-sanitizer - 一个很快的内存错误探测器。 Apache2.0
  • biicode - 一个现代的 C 依赖管理器。 Expat
  • c - 在命令行中编译和执行 C 脚本,也支持 shebang。 Expat
  • c99sh - 用 hash-bang 运行 C 文件。 FreeBSD
  • CBMC - C Bounded Model Checker;一个检查数组边界,指针安全和用户自定义断言的工具。 Original BSD
  • cdecl - 一个在线服务,能够把 C 的声明翻译成英文,反向也可以。公共领域。
  • cinclude2dot - 在 C 项目中使用 Graphviz 的图像包含依赖。任意的 GNU GPL 版本(根据文件中的要求)
  • Complexity - 一个测量 C 代码复杂性的工具。 GNU GPL3 或更高版本。
  • DDD - 各种命令行调试器的图形前端。 GNU GPL3 或更高版本。
  • fab - 让每次构建都最优的构建系统。 GNU GPL3
  • GDB - The GNU Project debugger;一个 C 调试器。 GNU GPL3 或更高版本。
  • Glade - 一个让 TK+ GUIs 开发更快的 RAD 工具。 GNU GPL2.1
  • GMSL - GNU Make Standard Library;一个 GNU Make 额外功能的集合。 3-clause BSD
  • GNU Global - 一个 C 的源码标签工具。 GNU GPL3
  • gprof - 一个性能分析工具。GNU binutils 的一部分。 GNU GPL3 或更高版本。
  • Highlight - 把源码转化为高亮的格式化文本。 GNU GPL3
  • include-what-you-use - 帮助程序员发现不必要的包含和提供解决他们的建议。基于 LLVM/Clang(只能与它一起工作)。 NCSA
  • indent - 自动格式化 C 代码,让它更容易阅读。也能把一种风格的代码转化为另一种。 GNU GPL3 或更高版本。
  • Make - 一个控制程序的可执行和其他非代码文件的生成的工具。 GNU GPL3 或更高版本(链接到 GNU 的实现)。
  • qo - 无需分开的配置文件的构建系统。 Expat
  • rr - 记录非确定执行来允许可确定调试的调试器。 FreeBSD
  • tup - 一个很快,基于文件,跨平台的构建系统。 GNU GPL2.1
  • unifdef - 移除 #ifdef 和 #if 指令包含的文本,不会改变文件的其他部分。 3-clause BSDFreeBSD
  • Valgrind - 各种动态分析工具,包括一个内存泄漏检测工具。 GNU GPL2.1

其他工具

下面是包罗万象的目录,主要是那些不适合放在其他目录的东西。

  • ApeTagLibs - APEv2 标签的 C 库。 Expat
  • bfd - 处理二进制对象文件的库。GNU binutils 的一部分。 GNU GPL3 或更高版本。
  • ccv - C-based/Cached/Core Computer Vision library;现代计算机视觉。 3-clause BSD
  • cf4ocl - The C Framework for OpenCL;一个跨平台面向对象框架,用于开发和用基准问题测试 OpenCL 项目。 GNU LGPL3 (库), GNU GPL3 (其他代码)。
  • CommonMark - CommonMark 规范的 C 实现。 Variety of licenses, all free
  • CException - 异常的 C 实现。 Expat
  • docopt.c - 命令行选项解析器的 C 实现。 Expat
  • dyncall - 另一个外部函数接口库。 Expat
  • FANN - Fast Artifical Neural Network library;一个神经网络的实现。 GNU GPL2.1
  • Firm - 一个 C 库,提供了基于图像中间表示,优化和适合编译器的汇编代码生成。配备了 C 的前端例子,使用相同的许可。 GNU LGPLv2.1
  • gjrand - 随机数字生成的例程库。 GNU GPL2.1 或者 GNU GPLv3 (用户的选择)。
  • GNU FreeIPMI - 一个带内和带外的 IPMI 实现。 GNU GPL3
  • GNU gperf - 一个完美的哈希函数生成器,提供一系列的字符串。输出 C 代码。 GNU GPL3 或更高版本。
  • GNU Libffcall - 一个构建外部函数接口库的集合。 GNU GPL3 或更高版本。
  • gperftools - 一系列测量和提高性能的实用工具集合。 3-clause BSD
  • hammer - 二进制格式的解析器组合。 GNU GPL2.1 .
  • Hans Boehm GC - C 的垃圾收集器?如果我用了不要介意。多种许可证,完全免费。
  • huffandpuff - 一个极小的哈夫曼编码器和解码器。公共领域。
  • iniparser - 一个 .ini 文件的解析器。 Expat
  • jemalloc - 一个 malloc 实现,着重于段错误的避免和可扩展并发支持。 FreeBSD
  • jwHash - 一个很快的哈希表实现。 Apache2.0
  • kdtree - KD-trees 的简单库。 3-clause BSD
  • Kitsune - 高效,通用的框架,用于软件的动态升级。 GNU LGPL3 或更高版本。
  • libavl - 一个包括各种自平衡二叉树的库。 GNU GPL3 或更高版本。
  • libbson - BSON 实用库。 Apache2.0
  • libCello - 引入高级语言给 C 的库。
  • libcox - 一个运行跨平台系统调用和跨系统标准工具的库。 FreeBSD
  • libffi - 轻量级的外部函数接口库。 Expat
  • libgit2 - Git 的纯 C 实现。 GNU GPL2 only, with a linking exception
  • libimobiledevice - 一个跨平台协议库,用于与 iThings 通信。 GNU LGPLv2.1 或更高版本(库), GNU GPL2.1 或更高版本(工具)。
  • libmpv - 音乐播放库。编译的时候加入 ./waf configure --disable-cplayer --enable-libmpv-shared 来避免生成音乐播放器。 GNU GPL2.1 或更高版本。
  • libnfc - 一个平台独立的 NFC 库。 GNU LGPL3
  • libPhenom - 事件框架,用于构建高扩展和高性能系统。 Apache2.0
  • libsoundio - 跨平台,实时音频输入输出的库,有很多种后端。 Expat
  • libucl - 通用配置库解析器。 FreeBSD
  • libudp - 一个统一设计模式的 C 实现。 GNU GPL3 或更高版本。
  • libuv - 跨平台异步 I/O。 Expat
  • libYAML - 一个 YAML 1.1 解析器和发射器。 Expat
  • lzo - 一个很快的数据压缩库。 GNU GPL2.1
  • mpc - 解析器组合库。 FreeBSD
  • ncurses - 彩色的终端 UI 库。 GNU GPL3 或更高版本。
  • nope.c - 一个基于 C 语言,超级轻量级的软件平台,用于可扩展服务端和网络应用的开发(想想 C 程序员的 nodejs)。
  • pbc - 一个协议缓冲库。 Expat
  • rabbitmq-c - RabbitMQ 的客户端库。 Expat
  • Ragel - 为编译C的状态机的DSL。 GNU GPL2.1
  • uthash - 哈希表实现,允许已经存在的数据结构很容易地存在哈希表里面。 1-clause BSD
  • Viola - libCello 的简化版本。 Expat
  • zlib - 一个相当漂亮却精致不张扬的压缩库。 3-clause BSD

XML

“XML 是垃圾。真的,没有任何借口。XML 对人类不友好的,甚至对于电脑来说也是一场灾难。根本就没有这个可怕的垃圾存在的理由” -Linus Torvalds

其他资源

有影响力的书

具有广泛影响且值得阅读的 C 语言经典书籍。

  • 待补充

知名网站/博客

值得关注的 C 语言技术站点和博客。

中文

  • 待补充

英文

  • 待补充

微信公众号

  • CPP开发者:专注分享 C/C++ 开发相关的技术文章和工具资源。