深入分析Linux操作系统的内核链表3
高平历史网 2020-06-13 17:37:32
3. 遍历 遍历是链表最经常的操作之一直接跌入成本线以下。,为了方便核心应用遍历链表债券大王格罗斯(BillGross)从太平洋投资管理公司(PIMCO)离职的消息引发债券市场的担忧,Linux 链表将遍历操作抽象成几个宏。在介绍遍历宏之前,我们先看看如何从链表中访问到我们真正需要的数据项。 a) 由链表节点到数据项变量 我们知道,Linux 链表中仅保存了数据项结构中 list_head 成员变量的地址,那么我们如何通过这个 list_head 成员访问到作为它的所有者的节点数据呢?Linux 为此提供了一个 list_entry(ptr,type,member) 宏,其中ptr是指向该数据中 list_head 成员的指针,也就是存储在链表中的地址值,type 是数据项的类型,member 则是数据项类型定义中 list_head 成员的变量名,例如,我们要访问 nf_sockopts 链表中首个 nf_sockopt_ops 变量,则如此调用: list_entry(nf_sockopts-next, struct nf_sockopt_ops, list);
这里 "list" 正是 nf_sockopt_ops 结构中定义的用于链表操作的节点成员变量名。
如何治疗肝郁型月经不调巴彦淖尔白癜风好的医院贵州哪家医院治疗白癜风相关阅读
- 《水电建设工程》特种邮票发行
- 装修,别抱“侥幸心理”,避开这6个点,要新颖更得安全
- 后悔没早看到这些"神"设计,漂亮又实用,众所周知是这3个地方
- 专访丨《三仙饭》:已出版的书和不能出版的生活
- 光子方程仪
- 揭秘准妈妈肚子上那条神秘的“孕妇中线”,看完你就明白了
- 去朋友新家,我一看客厅不曾阳台,采光差,皱了下眉他就不高兴了!
- 德国4月PPI同比攀升33.5% 因能源价格飙升
- 60岁单身大爷不再婚,却以一种奇特的方式安享晚年,让人十分羡慕
- 60岁的年龄,20岁的身材,这6位越老越帅气的男明星,太专一了
- 兴齐眼药(300573.SZ)连续大跌超30% 对近视“神药”阿托品滴眼液的命运 母公司只回应“生产
- 南财话你知丨银保监会:2018年以来总共处置不良贷款2.6万亿元;六部门:严厉打击骗取留抵退税违法犯