重新设计了d的一组API
将个性化的factory提取出来,改为使用通用的factory生成同一协议的protocol对象,并将业务逻辑对象作为factory的一个参数。这样做使得代码冗余大大降低了。
共 58 篇文章。
将个性化的factory提取出来,改为使用通用的factory生成同一协议的protocol对象,并将业务逻辑对象作为factory的一个参数。这样做使得代码冗余大大降低了。
I used to think that ldap_unbind() is the opposite of ldap_bind(), however I was wrong. Pierangelo Masarati (ando at openldap) pointed out that it was actually opposite of ldap_init(). So, do NOT expect init() -> bind() -> search() -> unbind() -> bind() would success, it’s simply wrong thing. You do not need to unbind() before you do another bind().
Just make a note.
今天发现了OpenLDAP client库的一个内存泄漏(每次连接会漏掉大约80字节),并提交了ITS patch(4441),不过我觉得这里面上锁上的还是有点问题的,至少逻辑不是很清楚。
今天 renzhen 同学问起为什么很多宏都定义为 do { something… } while(0),我也顺便温习了一下。
简而言之:如果希望宏表现的和函数接近,就需要这样做。
前几天忙得晕头转向的……
打算抽时间把libc里面的东西仔细看一看。前一阵发现一个诡异的PHP问题,不知道到底是php的bug还是libc的。。。
对GBK的locale做了一些改动,使得其能够提供正确的字符宽度信息了。这样一来,csh就能够正确处理GBK的中文了。昨天还增加了正体(我们叫做繁体)中文对应的locale变化。
有时,我们会希望扩展一些现有的C代码。这些代码可能经历了相当久的运行考验——它们至少目前工作起来没有问题——然而,它们可能存在各种各样的问题,比如:
要扩展这类代码是一件有挑战的事情。
似乎在处理>和<时,和 DCE 不太一样,改天写个test case看看。
生成UUID from 2006 Penguin, smashing time! on February 4, 2006 11:36 PM
1 2 3 4 5 6 7 8 9 10#include <stdio.h> #include <uuid.h> main() { uuid_t *uuid; char *s; uuid = (uuid_t*)malloc(sizeof(uuid_t)); uuidgen(uuid,1); uuid_to_string(uuid,&s,NULL); printf("%s\\n",s); }
一个很简单的生成UUID的例子。… Read More
Jason Evans同学返回FreeBSD的第一件事就是把malloc(3)的实现换掉了。这个完全重写的malloc(3)实现带来了以下功能:
仅manpage和malloc.c的patchset就超过150K,值得一读。