1 本科生实验报告 实验课程 计算机网络与TCP/IP 协议体系(2) 学院名称 信息科学与技术学院 专业名称 通信工程 学生姓名 杜立华 学生学号 ************ 指导教师 刘飚 实验地点 6B603 实验成绩 二〇 一五 年 二 月 —— 二〇 一五 年 六 月 2 实验一 Linux 内核通用链表的使用 实验目的 学习Linu x 内核通用链表的设计原理,熟练掌握Linu x 内核通用链表的使用
实验内容 1、掌握Linu x 通用链表的创建 2、掌握通用链表添加元素、删除元素和遍历链表的方法 3、掌握通用链表的查找方法 实验要求 •待创建的链表头变量名为user_queue
•作为链表的宿主节点类型定义如下: struct user { int id; /* user id */ struct list_head list; }; •针对上述user_queue链表,要求以队列方式向其中依次添加10个类型为struct user的宿主节点,并要求这10个宿主节点的id依次为1— 10 •依次遍历输出这10个宿主节点的id •从链表中删除首个宿主节点,然后依次遍历该队列并输出余下各宿主节点的id •在struct user结构体中增加一个username字段,用于存储该用户名字,重新以队列方式向其中依次添加10个类型为struct user的宿主节点,并要求这10个宿主节点的id依次为1— 10 •在链表中搜索id值为5的节点,并输出该节点username值 实现原理 Linu x 的内核源文件list
h提供了所有的链表定义,以及各类链表的操作接口和实现
其中创3 建链表的方法如下: LIST_HEAD(my_list); 源文件list
h中定义了如下若干接口,用于对通用链表进行各种操作: •在指定的head后插入新节点,常用于堆栈数据结构的实现 /