内核学习——1、list_head

双向循环链表:list_head

头节点head是不使用的:

struct list_head {

struct list_head *next, *prev;

};

结构体中没有数据域,所以一般把list_head嵌入到其他结构中使用

struct file_node {

char c;

struct list_head node;

};

此时,list_head就作为它父结构体中的一个成员了,我们知道list_head的地址(指针)时,就可以通过list_entry来获得它的父结构的地址

#define list_entry(ptr, type, member) container_of(ptr,type,member)

通过结构体成员地址来求得结构体地址:ptr是所求结构体中的list_head成员指针,type是所求结构体类型,member是结构体list_head成员名

list_for_each:遍历双向链表

LIST_HEAD():生成双向链表头节点

list_add():插入操作

list_del():删除操作

list_empty():判断是否为空

相关推荐
路灯上の马陈4 分钟前
Java 内部类 学习笔记
笔记·学习
前进的李工30 分钟前
Agent 学习笔记 12:Agent 的工具应该怎么设计
人工智能·笔记·学习·agent·工具调用·skill·工具设计
li星野1 小时前
从 DICOM 到声学属性学习记录:HU 值怎么变成密度和声速
学习
自信150413057591 小时前
重生之从0开始学习c++之——vector-中篇
c++·学习·算法
架构师伯子明1 小时前
ffmpeg学习4:opencv在音视频领域常用指令
opencv·学习·ffmpeg
wangqiaowq13 小时前
Ontology 学习
学习
choumou_M15 小时前
算法_1:由浅入深学习快速排序QuickSort
学习·算法·排序算法
蒸蒸yyyyzwd20 小时前
后端学习笔记 day111
笔记·学习
叼烟扛炮20 小时前
[LangChain] 学习笔记(08):工具调用底层闭环与第三方搜索(Tavily)实战
人工智能·笔记·学习·langchain
Severus_black21 小时前
【C++初阶】list使用及相关实现,思路顺滑流畅!
c语言·数据结构·c++·stl·list