Linux内核设备驱动之内核中链表的使用笔记整理

2019-01-16 20:39:20于丽

a.从链表指针获得包含该链表的结构体的指针

list_entry(struct list_head *ptr, type_of_struct, field_name);
ptr: list_head指针 type_of_struct: 包含ptr的结构体类型 field_name: 结构体中链表字段的名字

如:

my_struct *p = (list_head *ptr, my_struct, list);

b.遍历链表

list_for_each(struct list_head *cursor, struct list_head *list); //常常和list_entry配套使用 //注意!用list_for_each遍历时,不包括头节点

c.遍历的同时获得大结构体指针

list_for_each_entry(type *cursor, struct list_head *list, member);

d.遍历链表的同时释放每个被遍历到的节点

list_for_each_entry_safe(type *cursor, type *tmp; struct list_head *list, member);

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对易采站长站的支持。如果你想了解更多相关内容请查看下面相关链接

您可能感兴趣的文章:

将Linux代码移植到Windows的简单方法Linux内核设备驱动之内存管理笔记整理Linux内核设备驱动之内核的时间管理笔记整理Linux内核设备驱动之字符设备驱动笔记整理Linux内核设备驱动之虚拟文件系统笔记整理Linux内核设备驱动之系统调用笔记整理Linux内核设备驱动之内核的调试技术笔记整理Linux内核设备驱动之proc文件系统笔记整理Linux内核设备驱动之高级字符设备驱动笔记整理Linux内核设备驱动之Linux内核模块加载机制笔记整理Linux内核设备驱动地址映射笔记整理Linux内核设备驱动之Linux内核基础笔记整理移植新内核到Linux系统上的操作步骤