linux list
Posted gr-nick
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux list相关的知识,希望对你有一定的参考价值。
linux list
1. container_of
#define container_of(ptr, type, member) /
({ /
const typeof( ((type *)0)->member ) *__mptr = (ptr);/
(type *)( (char *)__mptr - offsetof(type,member) ); /
})
通过成员指针得到容器指针。
2. struct list_head
struct list_head {
struct list_head *next, *prev;
};
3. list_entry
#define list_entry(ptr, type, member) /
container_of(ptr, type, member)
4. list_for_each
#define list_for_each(pos, head) \
for (pos = (head)->next, prefetch(pos->next); pos != (head); \
pos = pos->next, prefetch(pos->next))
5. list_for_each_entry
#define list_for_each_entry(pos, head, member) /
for (pos = list_entry((head)->next, typeof(*pos), member); /
prefetch(pos->member.next), &pos->member != (head); /
pos = list_entry(pos->member.next, typeof(*pos), member))
以上是关于linux list的主要内容,如果未能解决你的问题,请参考以下文章
linux打开终端如何启动scala,如何在终端下运行Scala代码片段?
Android 逆向Linux 文件权限 ( Linux 权限简介 | 系统权限 | 用户权限 | 匿名用户权限 | 读 | 写 | 执行 | 更改组 | 更改用户 | 粘滞 )(代码片段