Chinaunix首页 | 论坛 | 博客
  • 博客访问: 390171
  • 博文数量: 200
  • 博客积分: 10
  • 博客等级: 民兵
  • 技术积分: 810
  • 用 户 组: 普通用户
  • 注册时间: 2013-01-07 12:12
文章分类

全部博文(200)

文章存档

2015年(2)

2013年(198)

发布时间:2013-01-07 14:11:25

忘记了之前是有个什么事情一时想起好像需要用个cycler buffer,手头一时又没有,懒得自己实现。就向同学要了个。后来好像也没有用到,倒是一直记得好像老早以前看到ldd上提到双向链表的时候有提到个kfifo,只是一直没有用到这个,所以一直没看。倒是无聊的时候想起过printk是否用的就是这个数据结构。  昨天临下班的时候想到kfifo这个东东,今天就抽点时间看看。  刚开始是把双向链表拎出来编一下看看,结果让我大吃一惊。居然没有list.h,看来fc从4以后开始倒退倒是有点佐证了。好在机器上还有linux-libc-headers的包,解包覆盖一下应该就ok了吧。不要高兴,还是不行。打开l......【阅读全文】

阅读(756) | 评论(0) | 转发(0)

发布时间:2013-01-07 14:11:02

作者:西邮 王聪Linux内核中的循环缓冲区(circular buffer)为解决某些特殊情况下的竞争问题提供了一种免锁的方法。这种特殊的情况就是当生产者和消费者都只有一个,而在其它情况下使用它也是必须要加锁的。循环缓冲区定义在include/linux/kfifo.h中,如下:struct kfifo {unsigned char *buffer;unsigned int size;unsigned int in;unsigned int out;spinlock_t *lock;};buffer指向存放数据的缓冲区,size是缓冲区的大小,in是写指针下标,out是读指针下标,lock是......【阅读全文】

阅读(798) | 评论(0) | 转发(0)

发布时间:2013-01-07 14:10:44

本文详解了内核中面向对象的list结构的原理,以及如何以list为内嵌对象来构造自己的链表结构,如何从内嵌list对象获得自定义的对象指针;探讨了各种宏或者函数的详细使用方法及怎样以通用list结构来操作自定义对象。【关键字】双向循环链表,list,list_entry,typeof,containerof,list_for_each, list_for_each_entry 1、双循环链表传统实现2、Linux内核中双循环链表实现3、定义和初始化4、通用链表操作接口4.1添加节点4.2删除节点4.3移动节点4.4链表判空4.5链表合并5、获取宿主对象指针6、遍历6.1 List-h......【阅读全文】

阅读(482) | 评论(0) | 转发(0)

发布时间:2013-01-07 14:00:01

今天搞故障,需要查找文件!上网查了查!   Linux中,有很多方法可以做到这一点。国外网站LinuxHaxor总结了五条命令,你可以看看自己知道几条。大多数程序员,可能经常使用其中的2到3条,对这5条命令都很熟悉的人应该是不多的。   1. find find是最常见和最强大的查找命令,你可以用它找到任何你想找的文件。 find的使用格式如下:   $ find <指定目录> <指定条件> <指定动作>   - <指定目录>: 所要搜索的目录及其所有子目录。默认为当前目录。   - <指定条件>......【阅读全文】

阅读(602) | 评论(0) | 转发(0)

发布时间:2013-01-07 13:54:32

第一部分:宏为什么要使用宏呢?因为函数的调用必须要将程序执行的顺序转移到函数所存放在内存中的某个地址,将函数的程序内容执行完后,再返回到转去执行该函数前的地方。这种转移操作要求在转去执行前要保存现场并记忆执行的地址,转回后要恢复现场,并按原来保存地址继续执行。因此,函数调用要有一定的时间和空间方面的开销,于是将影响其效率。而宏只是在预处理的地方把代码展开,不需要额外的空间和时间方面的开销,所以调用一个宏比调用一个函数更有效率。但是宏也有很多的不尽人意的地方。1、宏不能访问对象的私有成员。2、宏的定义很容易产生二意性。我们举个例子:#define square(x) (x*x)我们用一个数字去调......【阅读全文】

阅读(779) | 评论(0) | 转发(0)
给主人留下些什么吧!~~
留言热议
请登录后留言。

登录 注册