2010-06-23 11:18:41
涉及的技术内容包括:ASM、ANSI C、.NET/C#、Python、Linux/Ubuntu 等。
记录读书笔记、生活点滴。关注基础理论和开发……
除特别标注外,所有文章均为作者原创,转载请注明出处。谢谢!

  查看 "推荐文章目录"。  


  研发中心长期招聘开发人员,详情请点击 "Linux/C, Python 职位"、 ".NET/C# 职位"。
  雨痕内部技术交流群,欢迎熟识的朋友参与。 将 添加为您的 MSN 联系人即可。
  为杜绝垃圾广告的侵扰,只有注册用户可以发表评论和留言。
  如果有什么问题,可以单击右侧图标给雨痕发消息。( 绿色: 在线; 灰色: 脱机)
浏览模式: 普通 | 列表
12月, 2009 | 1

libgc 垃圾回收

[ 2009-12-22 21:17:27 | 作者: yuhen ]
习惯了 .NET 和 Java 平台的程序员,可能会对 C 编码的内存泄露存在某种未知的恐惧。其实 C 一样有好用、成熟而高效的垃圾回收库 —— libgc。官方网站已经发布了 7.2 Alpha4,包括 Mozilla、Mono 等项目都是其用户。

我们先准备一个内存泄露的例子,当然通常所说的内存泄露只发生在堆(Heap)上。
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

void test()
{
    char *s = malloc(102400);
    *s = 0x10;
}
 
int main(void)
{
    int i;
    for (i = 0; i < 10000; i++) 
...

阅读全文…

字符串编码转换

[ 2009-12-22 15:34:46 | 作者: yuhen ]
iconv 做字符串编码转换很方便很强大。
#include <iconv.h>

size_t iconv(iconv_t cd, char **inbuf, size_t *inbytesleft, char **outbuf, size_t *outbytesleft);

参数说明:
  • inbuf: 源字符串
  • inbytesleft: 源字符串中没有被转换的字节数
  • outbuf: 目标存储缓存
  • outbytesleft: 目标缓存剩余空间
需要注意的是 inbuf 和 outbuf 接受的不是数组指针,因此不能直接 "&数组名"。
#include <stdio.h> 
...

阅读全文…
1