您当前的位置: 首页 >  linux

咸鱼弟

暂无认证

  • 3浏览

    0关注

    165博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

在Linux下链表使用介绍一:list_head

咸鱼弟 发布时间:2018-06-28 22:31:18 ,浏览量:3

      在看这个知识点的时候我相信大家对数据结构已经有所了解,尤其是对链表的了解,因此在这里不过多讲解传统的链表基本知识,这里只给出通常双向链表的数据结构。

struct list_node{
    struct list_node *next,*prev;
    type1 m1;
    type2 m2;
};

     在Linux内核编程中为什么不使用通常的链表呢?因为它的缺点是:对每种类型串起来的链表,我们需要编写一系列的函数实现对链表的操作,在复杂的项目中,结构体会很多,对它们实现链表功能,那需要我们为每种类型的链表编写一套函数,我们时间会浪费,可维护性差。在Linux中内核中链表是如何使用的呢?

Linux中使用了侵入式链表“list_head”

struct list_head {
    struct list_head *next, *prev;
};

在我们需要某种数据结构的双向链表时,可以这样定义:

struct kobject {
    const char        *name;
    unsigned int      age;
    struct list_head  entry;
};

这个结构体类型生成的双向链表结构如下图所示:

那我们如何构建起这个链表,如何对链表中的数据访问,如何遍历链表呢?见下篇

 

关注
打赏
1663644285
查看更多评论
立即登录/注册

微信扫码登录

0.0366s