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

linux内核中的Hlist与List_head结构

List_Head
操作系统内核经常需要维护数据结构。内核有标准的循环链表、双向
链表的实现。在
<Linux/list.h>
文件中定义了一个
list_head
类型简单结构:
struct
list_head {
  

struct list_head *next, *prev;
};
 
通用链表的常用用途是将某一个数据结构本身串成链表,或将某些链
表与一个数据结构联系起来,这两种情况实质上都是由结构
list_head
组成链表,只是
list_head


背负

的负载不一样。下面分别举例说明这两种用途。
以下示例说明了如何将某一个数据结构本身串成链表,并对链表进行
操作,同时还说明
list_head
结构的实现与使用。
示例:将某一个数据结构本身串成链表。

1
)加入
list_head
结构成员。
假设有一个
example_struct
结构需连接成链表,因而在其结构里面加上
list_head
成员,就组成了结构链表,如下:
struct
example_struct {
  

struct list_head list;
  

int priority; 
  

……//
其他成员

};
 

example_struct
结构中的
list
成员,用来将
example_struct
结构串成链表。可理解为
list_head“
背负

的负载是
example_struct
结构。

2
)创建
list_head
结构。
使用前必须申请链表头并用

INIT_LIST_HEAD
宏来
初始化链表头。可使用两种方法。
方法
1

struct
list_head example_list;
INIT_LIST_HEAD(&example_list);

 
方法
2

LIST_HEAD(example_list);
 
其中,这两个宏在
include/Linux/list.h
中定义如下:
#define
LIST_HEAD(name) \
      

struct list_head name = LIST_HEAD_INIT(name)
 
#define
INIT_LIST_HEAD(ptr) do { \
      

(ptr)->next = (ptr); (ptr)->prev = (ptr); \
} while (0)
 
宏定义
INIT_LIST_HEAD
初始化了链表头,即向前、向后的指针都指向链表头。这样,就已
初始化了一个
example_list
的链表头,以后就可以向链表中增加链表元素了。

3
)链表与用户结构连接。
list_entry
宏将
exmplelist
链表与
exmple_struct
结构类型连接起来。
有两项链表的链表头
List_entry
宏的效果

list_head


相关文档:

Linux 下 Qt Creator 的安装使用

Qt 以其开源,免费,完全面向对象(很容易扩展),允许真正的组件编程以及可移植跨平台等诸多优势得到越来越多的开发人员的青睐。Qt
Creator 是 Nokia 官方推出的专门针对 Qt 开发的 IDE。本文详细介绍了 Linux 下 Qt Creator 的安装,并针对
Qt Creator 的使用举了一个 Hello World 级别的例子,希望对第一次接触 Qt Cre ......

linux建立文件/目录链接


<!--
/* Font Definitions */
@font-face
{font-family:宋体;
panose-1:2 1 6 0 3 1 1 1 1 1;
mso-font-alt:SimSun;
mso-font-charset:134;
mso-generic-font-family:auto;
mso-font-pitch:variable;
mso-font-signature:3 680460288 22 0 262145 0;}
@font-face
{font-family:"\@宋体" ......

嵌入式linux下QT3/Embedded的输入设备驱动接口

一、Qt3/Embedded的输入设备的驱动接口实现原理分析
       1、Qt3/Embedded把与底层硬件相关的源文件统一放在src/embedded目录下,所以我们最好也把自己的设备驱动接口文件放到此目录。
2、Qt/Embedded中的输入设备分为鼠标类与键盘类。在3.x版本系列中,鼠标设备的抽象基类为QWSMouseHandler,在sr ......

linux安装、卸载压缩的程序安装包

首先先将文件解压缩(以.tar.bz2为例):
tar -xjvf file.tar.bz2
其他的文件的解压,可以参考上一篇关于linux下压缩、解压缩文件的文章。
然后进入到解压后的文件里
cd 目录
再接着执行
./configure
这样,会生成makefile文件
接着进行文件的编译
make
再接着执行安装
make install
反之,卸载就是
make unin ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号