« drupal 在 php5.2.0 下session丢失的处理办法 | Main | 简单的cms:cmsmadesimple »

从apache扒出来一段string代码

作者:virushuo 发表于 2007-02-24 12:02 最后更新于 2007-02-26 17:02
版权声明:可以任意转载,转载时请务必以超链接形式标明文章原始出处和作者信息及本声明


c 里面字符串处理很讨厌,比如要append东西,就要memset,memcpy,malloc来回折腾,很麻烦。

我问tiny,这种东西大家每次用都自己写一个,难道就没有一个通用的吗?都这么多年了...tiny说都是自己写的。说的也没错,其实这东西就是基本功,应该顺手就能写一个linebuffer出来。但是他还是麻烦啊。字符串处理是内存相关的,大概是c最难掌握的技巧之一了。

我觉得C++比C好学的原因之一就是C++的std下面提供了很好的字符串类。

翻了几个著名的opensource项目,最后我从apache httpd里面扒出来这几个字符串处理函数,还不错。用起来也很简单。
就这样就可以:

MWA_STRING string;
apr_pool_t *pool;
init_string(&string, pool);

append_string(&string,"1111",0);
append_string(&string,"2222",0);
printf("%s",string.data);

用append往上增加字符串。

代码在:
http://blog.devep.net/virushuo/2007/02/24/mwastring.c
http://blog.devep.net/virushuo/2007/02/24/mwastring.h

update :
令狐虫 提醒,这个模块是mod_ WebAuth的一部分。他说的是对的。我是从apr_pool_t开始扒的,故有此错误。谢谢提醒。

关于许可证的问题,我怎么记得mit/bsd都是非继承的许可证呢?应该不用再声明吧?

Tags:
以下文章供您参考:

从SOA说开去 - Mar 10, 2008

德国式的幽默 - Mar 06, 2008

说总是比做容易 - Mar 03, 2008

TrackBack

TrackBack URL for this entry:
http://www.devep.net/cgi-bin/mt/devtb.pl/545

Comments

Apache httpd里没有找到这段代码,倒是用Google Code Search找到了一个WebAuth的项目,里面有这段代码。
http://www.google.com/codesearch?hl=zh-CN&q=+MWA_STRING+init_string+append_string+show:BxYRQ7S_W70:221mbnTaShQ:e292YnZ50U0&sa=N&cd=1&ct=rc&cs_p=http://webauth.stanford.edu/dist/webauth-3.5.3.tar.gz&cs_f=webauth-3.5.3/src/modules/webauth/webkdc.c#a0
这个项目采用的是MIT协议,所以你应该在你的代码前面加上MIT版权声明才对吧。

update :
令狐虫 提醒,这个模块是mod_ WebAuth的一部分。他说的是对的。我是从apr_pool_t开始扒的,故有此错误。谢谢提醒。

关于许可证的问题,我怎么记得mit/bsd都是非继承的许可证呢?应该不用再声明吧?

Post a comment


about me:
me.jpg
CC License. Some rights reserved.
署名·非商业用途·保持一致
本站之所有未作特别说明的内容均使用 创作共用协议.
POWERED_BY_MT_3.2