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