技巧
sanlongcai
这个作者很懒,什么都没留下…
展开
-
linux kernel中的免锁算法
在《LINUX设备驱动程序》(第三版)有几页对免锁算法的实现进行了分析。对于作者的分析有两点我想在这里作更加细致的说明。一是作者对循环缓冲的分析,当缓冲区满时分析错了;二是作者没有对里面的实现技巧作详细的介绍。针对以上两点,本文就用2.6.11(2.6.10和2.6.11是一样的)的kfifo.h和kfifo.c代码实现的免锁算法进行较为详细的分析。 对原创 2007-07-27 19:31:00 · 3330 阅读 · 2 评论 -
似有误的一道谷歌试题分析--高效删除单链表节点
斜体字内容是来自小兵的http://blog.csdn.net/wplxb/archive/2007/08/11/1737964.aspx。题目:单向链表的删除操作,已知 head, p(指向被删除元素),要求复杂度为 O(1) (题目似有误)常数时间删除结点肯定不行,不过可以用假删除,就是把要删除节点的值用要删除节点的下一个节点值覆盖,然后删除下一个节点 (要求该节点的下一原创 2007-08-16 19:56:00 · 1841 阅读 · 0 评论 -
C语言模拟C++的异常机制
也许很多人会问C语言能实现类似C++那样的异常处理吗?这就像问用C语言能写出面向对象的代码吗?对它们的回答都是肯定的。C++之父在《The C++ Programing language》(简称TCPL)描述C++的异常有句话的意思大致是这样的:C程序员可以把C++的异常处理看作是setjmp/longjmp的替代品。可见setjmp/longjmp是C语言提供的一种异常处理机制。要理解原创 2007-09-01 22:28:00 · 1679 阅读 · 0 评论 -
关于用宏定义的foreach和foreach_safe接口
现在也记不清楚是什么时候第一次接触foreach和foreach_safe接口了,只记得当时的感觉就是有点莫名其妙。其实这样的接口太普遍了,只要是常在开源代码打滚的人都会对这接口说一句“我们一直都这样做”。但总有刚接触的人可能会犯错。 今天用valgrind查了一个BUG,是关于foreach和foreach_safe接口错用引起的。其实接口的意思很简单,当只是普通遍历元素时它原创 2007-10-15 20:48:00 · 1369 阅读 · 0 评论