Web Analytics

理解Zombie和Daemon Process

潜水于CU(www.chinaunix.net),看到了大家对Zombie Process和Daemon Process的理解,同样也意识到以前自己对这两个概念理解的偏颇,想在这篇Blog中将之纠正。 一、Zombie Process Zombie Process,译成中文为僵尸进程,以前我一直认为父进程先结束,子进程就变成了僵尸进程,事实上这与正确的理解恰恰相反,真惭愧,只是从字面理解了而并未深入研究。下面重新理解一下: ...

September 21, 2005 · 5 min · Tony Bai

理解dup和dup2

看到ChinaUnix(CU)上的一个帖子后,觉得自己对dup和dup2特别是后者的理解还是有欠缺的,这两个接口看起来很简单,但是理解起来也真的并不是那么容易。 相信大部分在Unix/Linux下编程的程序员手头上都有《Unix环境高级编程》(APUE)这本超级经典巨著。作者在该书中讲解dup/dup2之前曾经讲过“文件共享”,这对理解dup/dup2还是很有帮助的。这里做简单摘录以备在后面的分析中使用: Stevens said: (1) 每个进程在进程表中都有一个记录项,每个记录项中有一张打开文件描述符表,可将视为一个矢量,每个描述符占用一项。与每个文件描述符相关联的是: (a) 文件描述符标志。 (b) 指向一个文件表项的指针。 (2) 内核为所有打开文件维持一张文件表。每个文件表项包含: (a) 文件状态标志(读、写、增写、同步、非阻塞等)。 (b) 当前文件位移量。 (c) 指向该文件v节点表项的指针。 图示: 文件描述符表 ———— fd0 0 | p0 ————-> 文件表0 ———> vnode0 ———— fd1 1 | p1 ————-> 文件表1 ———> vnode1 ———— fd2 2 | p2 ———— fd3 3 | p3 ———— … … … … ———— ...

September 19, 2005 · 6 min · Tony Bai

走马观花ANSI C标准-类型表示

类型表示(representation of types) 1、一般规则 a) 除了位域(bit field)之外的对象都是由一个或多个相邻序列字节组成的,这些字节的个数(number)、次序(order)和编码方式或是显式说明的,或是实现定义的。 ...

August 19, 2005 · 2 min · Tony Bai

本不是第一篇的第一篇

刚入司时,给我们做技术培训的老员工强烈向我们推荐blog这个新兴(起码对我来说是新的^_^)的咚咚,当时也想写就申请了一个,可是不知一天都忙些什么了,到今天才写了这第一篇,要说今天为什么要写,两个字“心烦”,本来我的第一篇blog在我的头脑中早已构思多次了,内容也换了多次,可是都没能实现,这篇blog是在丝毫没想的前提下动手写的。我觉得这样也不错,现在我的感觉就是想写就写,不用考虑太多,呵呵。 今天我入司以来的第一个项目编码结束,上午代码评审,我的leader给我找出“一堆”问题。真是郁闷啊,原以为自己的水平可以了,原来还是有很多要学习的。以前在Windows平台上开发,早已有自己的规范或者说习惯。现在转移到Solaris上开发,有些东东还真得好好学习一下,比如C语言代码头文件和源文件的格式。下面的例子是从各个代码规范中提取出来的一部分,也是我以后在项目中要使用的形式,有可能只适合我,呵呵。 ...

September 15, 2004 · 2 min · Tony Bai