成都理工大学TCPIP实验报告.docx

成都理工大学TCPIP实验报告.docx

ID:57440241

大小:96.40 KB

页数:18页

时间:2020-08-16

成都理工大学TCPIP实验报告.docx_第1页
成都理工大学TCPIP实验报告.docx_第2页
成都理工大学TCPIP实验报告.docx_第3页
成都理工大学TCPIP实验报告.docx_第4页
成都理工大学TCPIP实验报告.docx_第5页
资源描述:

《成都理工大学TCPIP实验报告.docx》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、本科生实验报告实验课程计算机网络与TCP/IP协议体系(2)学院名称信息科学与技术学院专业名称通信工程学生姓名杜立华学生学号2指导教师刘飚实验地点6B603实验成绩二〇一五年二月——二〇一五年六月实验一Linux内核通用链表的使用实验目的学习Linux内核通用链表的设计原理,熟练掌握Linux内核通用链表的使用。实验内容1、掌握Linux通用链表的创建2、掌握通用链表添加元素、删除元素和遍历链表的方法3、掌握通用链表的查找方法实验要求·待创建的链表头变量名为user_queue。·作为链表的宿主节点类型定义如下:struct

2、user{intid;/*userid*/structlist_headlist;};·针对上述user_queue链表,要求以队列方式向其中依次添加10个类型为structuser的宿主节点,并要求这10个宿主节点的id依次为1—10·依次遍历输出这10个宿主节点的id·从链表中删除首个宿主节点,然后依次遍历该队列并输出余下各宿主节点的id·在structuser结构体中增加一个username字段,用于存储该用户名字,重新以队列方式向其中依次添加10个类型为structuser的宿主节点,并要求这10个宿主节点的id依次

3、为1—10·在链表中搜索id值为5的节点,并输出该节点username值实现原理Linux的内核源文件list.h提供了所有的链表定义,以及各类链表的操作接口和实现。其中创建链表的方法如下:LIST_HEAD(my_list);源文件list.h中定义了如下若干接口,用于对通用链表进行各种操作:·在指定的head后插入新节点,常用于堆栈数据结构的实现//@newsk:即将添加的新链表节点//@head:在此节点后添加list_add(structlist_head*new,structlist_head*head);·在指定

4、的head前插入新节点,常用于队列数据结构的实现//@newsk:即将添加的新链表节点//@head:在此节点前添加list_add_tail(structlist_head*new,structlist_head*head);·从链表中删除一个指定节点//@entry:要从链表中删除的节点list_del(structlist_head*entry);·根据当前链表节点指针ptr获得宿主节点指针//@ptr:structlist_head类型的指针//@type:链表节点所在的宿主节点的类型//@member:嵌入宿主的链

5、表节点的变量名list_entry(ptr,type,member);·遍历链表//@pos:遍历链表时用于指示正在遍历的链表节点的指针//@head:链表头list_for_each(pos,head);实现代码和运行结果请打印本实验的程序代码和程序运行截图,并作为附件附在本实验报告后。#include#include#include"list.h"structuser{intid;structlist_headlist;};intmain(void){structuser*p;LIS

6、T_HEAD(user_queue);for(inti=0;i<10;i++){p=(structuser*)malloc(sizeof(structuser));p->id=i;list_add_tail(&p->list,&user_queue);}structlist_head*q;list_for_each(q,&user_queue){p=list_entry(q,structuser,list);printf("%d",p->id);}return0;}#include#include

7、lloc.h>#include"list.h"structuser{charusername[20];intid;structlist_headlist;};intmain(void){structuser*p;LIST_HEAD(head);for(inti;i<10;i++){p=(structuser*)malloc(sizeof(structuser));p->id=i+1;printf("user%2d,Pleaseinputusername:",i+1);scanf("%s",p->username);list_

8、add_tail(&(p->list),&head);}structlist_head*tmp;list_for_each(tmp,&head){p=list_entry(tmp,structuser,list);printf("%dt%s",p->id,p->username);}

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。