apue 最后两章都是通过一个完整的实例来解释一些 linux 功能,第20章就是通过一个数据库实例来解释文件锁的使用, 说实话,当时没兴趣,因为满页都是源码和解析,有点看不下去.但是再拾起来硬着头皮看的时候,发现这哪里是个小 demo,明明是个五脏俱全的 key-value 数据库嘛, 而且这个数据库,提供多进程并发读写的安全性保证(通过文件锁).提供已删除节点循环再利用的能力.提供根据用户需求调节内部 hash 表参数的能力…… 特别是它的索引与数据文件格式,采用字符串存储各种偏移量与数字,…