内核学习——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():判断是否为空

相关推荐
近津薪荼12 分钟前
优选算法——双指针4(单调性)
c++·学习·算法
强子感冒了1 小时前
MYSQL学习笔记:DML & DQL 核心语法
笔记·学习·mysql
嗯嗯=9 小时前
STM32单片机学习篇9
stm32·单片机·学习
ooo-p10 小时前
FPGA学习篇——Verilog学习之“呼吸灯”
学习·fpga开发
求真求知的糖葫芦10 小时前
微波工程4.2节阻抗与导纳矩阵学习(自用)
笔记·学习·线性代数·矩阵·射频工程
炽烈小老头10 小时前
【 每天学习一点算法 2026/01/26】缺失数字
学习·算法
子夜江寒12 小时前
OpenCV 学习:图像拼接与答题卡识别的实现
python·opencv·学习·计算机视觉
wdfk_prog12 小时前
[Linux]学习笔记系列 -- [drivers][base]platform
linux·笔记·学习
W_a_i_T14 小时前
【Coding日记】菜鸟编程C语言100例——第一题
c语言·学习·编程思维·菜鸟编程
测试人社区—667914 小时前
2025区块链分层防御指南:AI驱动的安全测试实战策略
开发语言·驱动开发·python·appium·pytest