【Linux】list_for_each()与list_for_each_safe()的区别
来源:互联网 发布:dnf突然会网络冲突 编辑:程序博客网 时间:2024/05/21 02:54
list_for_each()的定义:
list_for_each_safe()的定义:
由上面两个对比来看,list_for_each_safe()函数比list_for_each()多了一个中间变量n
当在遍历的过程中需要删除结点时,来看一下会出现什么情况:
list_for_each():list_del(pos)将pos的前后指针指向undefined state,导致kernel panic,list_del_init(pos)将pos前后指针指向自身,导致死循环。
list_for_each_safe():首先将pos的后指针缓存到n,处理一个流程后再赋回pos,避免了这种情况发生。
因此之遍历链表不删除结点时,可以使用list_for_each(),而当由删除结点操作时,则要使用list_for_each_safe()。
阅读全文
0 0
- 【Linux】list_for_each()与list_for_each_safe()的区别
- list_for_each()与list_for_each_safe()的区别
- list_for_each()与list_for_each_safe()的区别
- list_for_each()与list_for_each_safe()的区别
- 遍历Linux kernel的链表时删除节点的方法 list_for_each_safe
- 需要list_for_each_safe的原因
- list_for_each与list_for_each_entry详解
- list_for_each与list_for_each_entry详解
- list_for_each与list_for_each_entry
- list_for_each_safe()
- list_for_each_safe
- Linux内核中list_head、list_for_each、list_entry、container_of之间的关系
- list_for_each
- Linux $( )与${ }的区别
- linux "" 与''的区别
- linux &> 与 >的区别
- linux /与~的区别
- list_for_each_safe解释
- 文本绘制技巧
- Numpy基础笔记(2)
- 劫富济贫
- POI
- Sliding Menu常用属性
- 【Linux】list_for_each()与list_for_each_safe()的区别
- git 项目地址迁移
- nyoj914 Yougth的最大化
- NAT连接的虚拟机提供web服务,如何让HOST同一局域网机器访问
- Android之ListView的简单优化两步走
- JavaScript DOM
- python tensorflow学习笔记(一)Hello World
- 三角网格表面高斯曲率的计算与可视化
- JS限制手机端样式代码