关闭

深入浅出Linux之内核数据结构

标签: linux数据结构
36人阅读 评论(0) 收藏 举报
内核使用的数据结构有双向链表,单向链表和hash链表。另外,基树和红黑树也是内核使用的数据结构。实际上,这也是程序代码中通常使用的数据结构,一些偏僻难的数据结构并不常见。

1. container

  container是linux很重要的一个概念。有了container方法,才能实现对对象的封装。

  分析一下container方法。

======================================================================

#define container_of(ptr, type, member) ({               \

        const typeof( ((type *)0)->member ) *__mptr = (ptr);      \

        (type *)( (char *)__mptr - offsetof(type,member) );})

  这个方法巧妙的实现了通过结构的一个成员及成员指针找到整个结构的地址。有了container方法,list才

成为了一个通用的数据结构,通过container方法,还可以实现内核的封装,程序之间不暴露

内部的数据。

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:210次
    • 积分:16
    • 等级:
    • 排名:千里之外
    • 原创:1篇
    • 转载:3篇
    • 译文:0篇
    • 评论:0条
    文章存档