linux内核list操作实例

本文介绍了一个基于Linux内核的链表实现示例,通过使用list_entry宏来操作链表节点,展示了如何在C语言中高效地进行链表操作。这种实现方式对于理解Linux内核的数据结构和链表管理具有很高的实用价值。
 1 /**
 2 *teakey
 3 *2012-07-25
 4 */
 5 #include<stdio.h>
 6 #include<stdlib.h>
 7 #define list_entry(ptr,type,member) \
 8  (type *)( (char *)(ptr)  -  (unsigned long)(&(((type*)0)->member)))
 9 
10 struct list_head
11 {
12     struct list_head *next;
13     struct list_head *prev;
14 };
15 typedef struct person
16 {
17     int age;
18     struct list_head list;
19 }Person;
20 
21 int main(int argc,char **argv)
22 
23 {
24     Person person;
25     person.age=25;
26     struct list_head list;
27     list.next=&list;
28     list.prev=&list;
29     person.list=list;
30     Person *pos=list_entry(&person.list,Person,list);
31     printf("the age of person is %d",pos->age);
32     return 0;
33 
34 }

 


上面的例子应该不用讲太多把,相信你自己哦。。。
关键是linux内核链表的实现,这个很有实际应用价值。list_entry,简直就是太棒了。






转载于:https://www.cnblogs.com/iteakey/archive/2012/07/27/2611348.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值