`
andrew913
  • 浏览: 187432 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

list_head 实例

阅读更多
最近一个项目要用到这个东西,发现确实很好用,就写了个最简单的例子,希望对大家有用,对linux下面的编程了解实在太少,正在努力学习中,学生嘛,慢慢来,不急躁。
#define __KERNEL__ //这样才能使用list.h,具体请看list.h
#include "list.h" /*由于我的机器上没有list.h,所以我拷贝了一个,如果你机器上有,应该是加#include <linux/list.h>*/
#include <stdio.h> 
#include <string.h>

#define MAX_USER_LEN 32
#define MAX_PAS_LEN 32
#define MAX_SERVER_LEN 1024

 
typedef struct server_detect_ftp
{
	struct list_head list;
	char server[MAX_SERVER_LEN];
	int port;
	char username[MAX_USER_LEN];
	char password[MAX_PAS_LEN];
}server_detect_ftp_t;

int main(void)
{
	struct list_head head;//头部
	server_detect_ftp_t ftp_link;
	server_detect_ftp_t ftp_link1;
	server_detect_ftp_t *entry;
	struct list_head *p;
	INIT_LIST_HEAD(&head);//初始化头部
	strcpy(ftp_link.server,"www.163.com");
	ftp_link.port=34;
	strcpy(ftp_link.username,"good");
	strcpy(ftp_link.password,"good");

	strcpy(ftp_link1.server,"www.163.com");
	ftp_link1.port=34;
	strcpy(ftp_link1.username,"good");
	strcpy(ftp_link1.password,"good");

	INIT_LIST_HEAD(&head);

	list_add(&ftp_link.list,&head);
	list_add(&ftp_link1.list,&head);//添加链表
	list_del(&ftp_link1.list);//删除链表
	list_for_each(p,&head)//遍历
	{
		entry=list_entry(p,struct server_detect_ftp,list);//读取某个值

		printf("%s\n",entry->username);
	}

	return 0;
}




list_head在实际应用中很有用,而且他的设计非常有意思,大家可以去list.h中看他们的宏定义,了解他是如何实现的,关键就是了解他是如何读取具体的数据,其实就是一个地址的获取。
2
1
分享到:
评论

相关推荐

    ALV LIST列头合并实例

    ALV LIST列头合并实例

    Linux中的内核链表实例详解

    Linux中的内核链表实例详解 链表中一般都要进行初始化、插入、删除、显示、释放链表,寻找节点这几个操作,下面我对这几个操作进行简单的介绍,因为我的能力不足,可能有些东西理解的不够深入,造成一定的错误,请...

    C++ 使用模板实现一个List的实例

    C ++使用模板写的一个List template class List { private: struct Node { T data; Node *next; }; //head Node *head; //size int length; //process Node *p; //temp Node *q; public: List() {...

    Spring MVC 入门实例

    48 &lt;/welcome-file-list&gt; 49 50 51 52 &lt;taglib-uri&gt;http://java.sun.com/jsp/jstl/core&lt;/taglib-uri&gt; 53 &lt;taglib-location&gt;/WEB-INF/tld/c.tld 54 55 56 &lt;taglib-uri&gt;...

    jQuery使用attr()方法同时设置多个属性值用法实例

    本文实例讲述了jQuery使用attr()方法同时设置多个属性值的用法。分享给大家供大家参考。具体如下: 下面这个演示例子可通过点击按钮实现修改链接与提示的功能。 &lt;!DOCTYPE html&gt; &lt;html&gt; &lt;head&gt; ...

    基于jQuery实现点击弹出层实例代码

    代码实例如下: &lt;!DOCTYPE html&gt; &lt;html&gt; &lt;head&gt; &lt;meta charset= utf-8&gt; &lt;meta name=author content=//www.jb51.net /&gt; &lt;title&gt;子选择器&lt;/title&gt; &lt;style type=text/css&gt...

    C语言高级编程及实例部.rar

    /* Form the free list */ for (blk = 0 ; blk &lt; ttl_blks - 1; blk++) { heap-&gt;link = heap + 1 ; heap++ ; } heap-&gt;link = 0 ; /* Establish end marker */ heap = btm_of_heap ; /* Restore ...

    黑客反向工程

    //一个pcap实例 char errbuf[PCAP_ERRBUF_SIZE]; //错误缓冲区 unsigned char *mac; //本机MAC地址 unsigned char *packet; //ARP包 unsigned long fakeIp; //要伪装成的IP地址 pcap_addr_t *pAddr; //网卡...

    P2P视频播放器 详细制作实例

    P2P视频播放器 详细制作实例 1. 说明 1) 客户向服务器发送请求, 每个请求的长度不定. 请求的长度在第一个INT中指定. 2) 每个服务器通常会向多种客户提供服务, 例如, TS要同时向CP, NP提供服务, CP要向NP和其他CP...

    ZendFramework中文文档

    9.6.2. List of All Constants 9.6.3. Self-Defined OUTPUT Formats with ISO 9.6.4. Self-defined OUTPUT formats using PHP's date() format specifiers 9.7. Working examples 9.7.1. Checking dates 9.7.2....

    Python3实现的判断环形链表算法示例

    本文实例讲述了Python3实现的判断环形链表算法。分享给大家供大家参考,具体如下: 给定一个链表,判断链表中是否有环。 方案一:快慢指针遍历,若出现相等的情况,说明有环 # Definition for singly-linked list. ...

    jquery应用实例分享_实现手风琴特效

    实例如下所示: &lt;!DOCTYPE html&gt; &lt;html lang=en&gt; &lt;head&gt; &lt;meta charset=UTF-8&gt; &lt;title&gt;Title&lt;/title&gt; &lt;style&gt; *{padding: 0px;margin: 0px;} li{ width: 80px;height...

    ASP.NET jQuery 实例6 (实现CheckBoxList成员全选或全取消)

    这章内容比较简单,直接上页面代码: 代码如下: &lt;&#37;@ Page Language=”C#” AutoEventWireup=”true” CodeFile=”Recipe6.aspx.cs” Inherits=”Recipe6″ %&gt; &lt;!DOCTYPE html PUBLIC ... &lt;head runat=”s

    微信小程序 上传头像的实例详解

    微信小程序 上传头像的实例详解 最近在做微信小程序上传头像和上传照片功能就随手写一下代码:  上传头像html: &lt;view class=edit-list&gt;  &lt;text class=list-name&gt;头像    &lt;image class=head-portrait src={{...

    jquery广告无缝轮播实例

    head&gt; &lt;meta http-equiv="Content-Type" content="text/html; charset=utf-8" /&gt; &lt;title&gt;jquery广告无缝轮播代码演示&lt;/title&gt; &lt;style type="text/css"&gt; li{ list-style:none; } ....

    C语言数据结构之循环链表的简单实例

    C语言数据结构之循环链表的简单实例 实例代码: # include # include typedef struct node //定义链表中结点的结构 { int code; struct node *next;...LinkList createList(int n) { LinkList head; //头结

    jquery实现的树形目录实例

    本文实例讲述了jquery实现的树形目录。分享给大家供大家参考。具体实现方法如下: &lt;!DOCTYPE html&gt; &lt;html lang=en&gt; &lt;head&gt; &lt;meta charset=UTF-8&gt; &lt;title&gt;Document&lt;/title&gt; &lt;...

    jQuery+Ajax+PHP+Mysql实现分页显示数据实例讲解

    当然,别忘了,在head中预先载入jquery库文件。 CSS 我们需要将商品图片进行排列,以及设置分页条样式,当然这些样式的设计可以根据读取成功后的数据进行设置,本例中我们先把css代码贴出来。 #list{width:680px;

    JS数组中对象去重操作示例

    本文实例讲述了JS数组中对象去重操作。分享给大家供大家参考,具体如下: &lt;!DOCTYPE html&gt; &lt;html lang="en"&gt; &lt;head&gt; &lt;meta charset="UTF-8"&gt; &lt;title&gt;www.jb51.net js数组中对象去重&...

    javascript运动效果实例总结(放大缩小、滑动淡入、滚动)

    本文实例总结了javascript运动效果实现与用法。分享给大家供大家参考,具体如下: 一、图片放大缩小效果: &lt;!doctype html&gt; &lt;html&gt; &lt;head&gt; &lt;meta charset="utf-8"&gt; &lt;title&gt;图片放大缩小...

Global site tag (gtag.js) - Google Analytics