(2007-01-30) (阅读次数: 4613)
(2007-01-29) (阅读次数: 2322)
结构成员变量偏移量的两个应用:最近在阅读linux kernel的代码,发现很多地方都使用了一个名container_of的宏,根据上下文可以看出,它的功能是得到包含某个结构成员的结构(container)的指针。看了一下宏的定义,原来并没有用什么高深的技巧,只是C语言中常识而已
(2007-01-28) (阅读次数: 3716)
在Linux下,从到头构建图形环境,不说是很难的事,至少也是要费些周折的,特别是对一个新手来说。最近老大让我研究一下Linux下的图形环境,以便决定是否能在手机上使用(CPU采用INTEL的PXA27x)。为了方便,先在PC上做实验,操作系统采用的是RH9,目标是让TinyX + GTK在RH上跑起来。为了编译,中间有多次反复,直到后来一口气完成,一共竟花了五六个晚上。下面把全过程写下来,和大家分享:
(2007-01-28) (阅读次数: 2700)
开发多语言软件是一件非常困难的事,各个国家的字符集的编码方式、货币符号、日期格式、数字格式、文字表现都各不相同,glibc提供了大量的函数处理这些事情,不再聱述了。这里要做的是,用一个简单的实例说明一下GetText的用法,GetText是一系列的工具和库函数,帮助程序员和翻译人员开发多语言软件的。
GetText并不是一个神秘的东西,若非要在Win32下找一个东东与之对应的话,我想应该是资源文件(.res),它替你把字符串管理起来,在运行可以根据当前的语言,自动加载对应语言的字符串。
(2007-01-24) (阅读次数: 2433)
交叉编译场景分析(arm-linux)(二)--编译tslib
(2007-01-24) (阅读次数: 3247)
交叉编译场景分析(arm-linux)(一)--基本知识
(2007-01-23) (阅读次数: 2706)
交叉编译场景分析(arm-linux)(四)--编译readline和ncurses
(2007-01-23) (阅读次数: 2618)
交叉编译场景分析(arm-linux)(六)--编译TinyX
(2007-01-23) (阅读次数: 2380)
交叉编译场景分析(arm-linux)(八)--编译glib
(2007-01-23) (阅读次数: 2399)
交叉编译场景分析(arm-linux)(七)--编译sqlite
(2006-06-22) (阅读次数: 7627)
了解linux的内存模型,或许不能让你大幅度提高编程能力,但是作为一个基本知识点应该熟悉。坐火车外出旅行时,即时你对沿途的地方一无所知,仍然可以到达目标地。但是你对整个路途都很比较清楚的话,每到一个站都知道自己在哪里,知道当地的风土人情,对比一下所见所想,旅程可能更有趣一些。
(2006-12-26) (阅读次数: 9388)
内存错误最为普遍,即使是久经沙场的老手,也有时也难免落入陷阱。前事不忘,后世之师,了解这些常见的错误,在编程时就加以注意,把出错的概率降到最低,可以节省不少时间。这些列举一些常见的内存错误,供新手参考。
(2006-12-25) (阅读次数: 5167)
惯用手法的影响虽然是局部的,其作用仍然很重要。它不但在提高软件的质量方面,而且在加快软件开发进度方面都有很大贡献。本文介绍几种关于内存的惯用手法,这些手法对于老手来说已经习以为常,对于新手来说则是必修秘技。
(2006-07-26) (阅读次数: 8670)
知其然也知其所以然,是我们《大内高手》系列一贯做法,本文亦是如此。这里我不打算讲解如何使用boundschecker、purify、valgrind或者gdb,使用这些工具非常简单,讲解它们只是多此一举。相反,我们要研究一下这些工具的实现原理。
(2006-12-18) (阅读次数: 5651)
以前用C++时,喜欢去玩一些语法上的技巧,每学到一个技巧都高兴得不得了,总是想找个地方用它,以显示自己的水平。其实我们应该更关心技巧的实用价值,如果一项技巧很巧妙,但很少用它,忘掉了也不必觉得可惜。最近发现两则C语言技巧,以前没有用过,觉得有些实用价值,做个笔记吧。