易截截图软件、单文件、免安装、纯绿色、仅160KB

Linux内核的链表

自2.1内核开发版以来,linux就引入了正式的链表实现,采用的是双向循环链表。因此,在开发过程中应该使用这些已有的接口。
1. 定义
链表结构体定义在文件<linux/list.h>中。
    struct list_head {
       struct list_head  *next;
       struct list_head  *prev;
    };
使用时通常需要把它嵌入到你自己的结构体中。
例:
        struct my_struct {
             struct list_head  list;
             unsigned long     dog;
             void *            cat;
        };
下面给出一些接口:
    struct my_struct *p;
初始化:
/*动态初始化*/
    p->dog = 0;
    p->cat = NULL;
    INIT_LIST_HEAD(&p->list); 
/*静态初始化*/
    struct my_struct mine = {
       .list = LIST_HDAD_INIT(mine.list);
       .dog = 0;
       .cat = NULL;
    };
/*直接声明并初始化*/
    static LIST_HEAD(fox); /*声明并初始化一个名为fox的静态链表*/
2. 基本操作
给链表增加一个节点:
    list_add(struct list_head *new, struct list_head *head);
    /*该函数向指定链表的head节点后插入new节点。*/
    list_add_tail(struct list_head *new, struct list_head *head);
    /*该函数向指定链表的head节点前插入new节点。*/
从链表中删除一个节点:
    list_del(struct list_head *entry);
    /*该函数仅仅是将entry元素从链表中移走。*/
     list_del_init(struct list_head *entry);
    /*该函数将entry元素从链表中移走并再次�


相关文档:

实战Linux Bluetooth编程(三) HCI层编程

1. HCI层协议概述:
HCI提供一套统一的方法来访问Bluetooth底层。如图所示:
从图上可以看出,Host Controller Interface(HCI)  就是用来沟通Host和Module。Host通常就是PC, Module则是以各种物理连接形式(USB,serial,pc-card等)连接到PC上的bluetooth Dongle。
在Host这一端:application,SDP,L2cap等协议 ......

实战Linux Bluetooth编程(四) L2CAP层编程

(L2CAP协议简介,L2CAP在BlueZ中的实现以及L2CAP编程接口)
一:L2CAP协议简介:
Logical Link Control and Adaptation Protocol(L2CAP)
逻辑连接控制和适配协议 (L2CAP) 为上层协议提供面向连接和无连接的数据服务,并提供多协议功能和分割重组操作。L2CAP 充许上层协议和应用软件传输和接收最大长度为 64K 的 L2CAP � ......

linux读写文件速度测试

一. 文件一次读入速度
linux下读文件这东西最后都是要通过系统调用sys_read(fd,buf,count)来实现的,所以如果要提高速度,就是最简单地调用sys_read的封装,比如直接用read()或fread()。下面是我在linux下的几个测试。
首先创建一个130M数据文件 dd if=/dev/zero of=data bs=1024k count=130
[dd if=/dev/zero of=data b ......

深入理解linux系统调用与使用之整理篇

深入理解linux系统调用与使用之整理篇
一、 什么是系统调用
      在Linux的世界里,我们经常会遇到系统调用这一术语,所谓系统调用,就是内核提供的、功能十分强大的一系列的函数。这些系统调用是在内核中实现的,再通过一定的方式把系统调用给用户,一般都通过门(gate)陷入(trap)实现。系统� ......

深入理解与使用Linux系统调用之整理笔记

深入理解与使用Linux系统调用之整理笔记
一、 什么是系统调用
      在Linux的世界里,我们经常会遇到系统调用这一术语,所谓系统调用,就是内核提供的、功能十分强大的一系列的函数。这些系统调用是在内核中实现的,再通过一定的方式把系统调用给用户,一般都通过门(gate)陷入(trap)实现。系� ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号