linux内核自带的链表使用

linux内核自带了链表,所以我们就不用再自己动态申请空间构造链表了。

在程序中想要使用链表,直接用linux提供的宏来操作linux内核链表就可以了。

注意:linux内核提供的链表为循环链表。

下面罗列一下操作linux内核链表的常用的宏:

LIST_HEAD(list_name); //创建名字为list_name的链表头

list_for_each_entry(pos, head, member) //这是便利链表的宏

{

your loop codes here;

}

其中,pos是指向链表宿主节点的指针,head是刚刚创建的链表头名字,member是链表节点在宿主结构体中的名字;

还有一些宏,我就不一一讲解了,大家自己去看list.h这个头文件嘛,里面定义了所有的操作链表的宏。

linux内核的链表还是比较好用的。我写程序的时候如果不是特殊要求的话,都会使用linux的通用链表。

linux内核链表使用及list.h下载地址:http://www.oschina.net/code/snippet_1023919_20145