四月书摘——请以你的名字呼唤我

我不羡慕痛苦本身,但我羡慕你会痛。许多人帮我把人生区分为某人之前与某人之后的段落,许多人带来欢喜和忧伤,许多人迫使我的人生偏离了原来的轨道,其他人则没有造成任何不同。时间让我们变得多愁善感。或许...

C 中的 static

印象中之前找过好几次关于 C 语言中 static 关键字的资料,但是一直忘,其实也是找到的资料都没说清楚,这里是一个总结和汇总。0x01 static 全局变量一个进程在内存中的数据布局如下(...

do{...}while(0)的常见用法

去年第一次遇到 do{...}while(0) 的用法,当时以为是那个项目作者的个人习惯,今年开始阅读大量其他开源项目后,发现这种用法很常见,遂查阅资料,现总结如下:

高性能的CDC算法

在Pcompress中,我实现了基于滚动散列的按内容分块的一个变体方案,这个方案同时具有较高的重复数据删除准确性和性能。本文试图解释分块过程,包括Pcompress中完成的分块计算,然后讨论针对...

Hashtable和Bucket

哈希表 Hashtable在入门的数据结构课本中,这样定义哈希表:根据设定的哈希函数H(Key)和处理冲突的方法将一组关键字Key映射到一个有限的连续地址集上,并以关键字Key在地址集上的“像”...

socketpair系统调用

socketpair源自BSD,可以实现在同一个文件描述符中进行读写。该系统调用能创建一对已连接的UNIX族socket。 在Linux中,完全可以把这一对socket当成pipe返回的文件描述...

调用OpenSSL的SHA1算法

SHA1散列函数是很常用的散列函数,它产生160bit(20字节)长度的散列值。SHA1相关的API声明#include <openssl/sha.h> unsigned cha...