用 C 写成的现代 Web 应用
Corey Prophitt 上线了一款完全用 C 写、通过 CGI 提供服务的商业 Web 产品,数据库用 SQLite,整个应用就是一个二进制文件。以下是 BCHS 技术栈替他省下的部分,以及他不得不自己动手写的部分。
更多 C
首页Corey Prophitt 上线了一款完全用 C 写、通过 CGI 提供服务的商业 Web 产品,数据库用 SQLite,整个应用就是一个二进制文件。以下是 BCHS 技术栈替他省下的部分,以及他不得不自己动手写的部分。
一个 C 语言里的小型 arena 分配器全解:从它解决的生命周期问题,到可运行实现的结构体、内存对齐和 realloc 路径。
两名学生试图写出一个能通过学校自动评分器所有练习的单一解法。要让任意代码运行,就得在健全性检查的眼皮底下调用 C 函数,而诀窍在于不写出它们的名字就能调用到它们。
从内存中清除密钥比调用memset更难。优化器有权删除该写入,存储可能不会保留,而向编译器隐藏它也有其代价。关于正确实现零化的系列文章第一部分。

作者第一次写 C,照着 Kilo 指南做了个终端编辑器:raw mode 用 tcgetattr/tcsetattr、把字节流解析成按键(含 ANSI 转义序列)、用 ioctl(TIOCGWINSZ) 查窗口尺寸、用 write() 逐行绘制。全程不用任何第三方库。

作者拿到一道把算术表达式转成二叉树的数据结构作业,顺手写成了一个求值器,几天后就有了闭包、垃圾回收、自定义内存分配器、REPL 与 FFI。全文带 C 代码逐步讲清楚。