内核中的链接列表遍历

时间:2013-08-06 09:09:28

标签: linux module linux-kernel linked-list kernel

我正在使用list_for_each_entry(datastructureptr , &mylinkedlist, head)遍历我创建的链接列表。我得到的输出是最后插入的项目首先打印。这是预期的产出吗?是否有任何宏/函数以其他方式打印它?

2 个答案:

答案 0 :(得分:2)

list_for_each_entry遍历从第一个到最后一个项目的列表。

您必须确保以正确的顺序和正确的位置插入项目。 list_add插入列表的开头; list_add_tail最后。

答案 1 :(得分:1)

struct private {
        char data[30];
    struct list_head head;
    }; 
.......
.....
static struct private mylinkedlist;
....
struct private *datastructureptr=&mylinkedlist;
...
   list_for_each_entry(datastructureptr , &mylinkedlist, head)
       printk( " %s->\n",datastructureptr->data); 

以十五行方式打印项目