内核源码中存在这么一个宏container_of
用于从一个结构体的成员指针获取结构体的指针。
如:
1
2
3
4
| struct my{
int a;
int b;
}; |
在此如果知道成员b的指针可用container_of函数来获取包含b的my结构体的指针。
在此列中使用如以知b的指针pb:
1
2
| struct my *getmy;
getmy = container_of(pb,struct my,b); |
这样就获取到了my的指针。
这个宏的工作原理比较简单,下面简单介绍下其工作原理和实际代码。
[阅读全文] »