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

2.6版Linux内核结构体指定初始化

在阅读GNU/Linux内核代码时,我们会遇到一种特殊的结构初始化方式。该方式是某些C教材(如谭二版、K&R二版)中没有介绍过的。这种方式称为指定初始化(designated initializer)。下面我们看一个例子,Linux-2.6.x/drivers/usb/storage/usb.c中有这样一个结构体初始化项目:
static struct usb_driver usb_storage_driver = {
       .owner = THIS_MODULE,
       .name = "usb-storage",
       .probe = storage_probe,
       .disconnect = storage_disconnect,
       .id_table = storage_usb_ids,
};
    乍一看,这与我们之前学过的结构体初始化差距甚远。其实这就是前面所说的指定初始化在Linux设备驱动程序中的一个应用,它源自ISO C99标准。以下我摘录了C Primer Plus第五版中相关章节的内容,从而就可以很好的理解2.6版内核采用这种方式的优势就在于由此初始化不必严格按照定义时的顺序。这带来了极大的灵活性,其更大的益处还有待大家在开发中结合自身的应用慢慢体会。
    已知一个结构,定义如下
struct book {
    char title[MAXTITL];
    char author[MAXAUTL];
    float value;
};
    C99支持结构的指定初始化项目,其语法与数组的指定初始化项目近似。只是,结构的指定初始化项目使用点运算符和成员名(而不是方括号和索引值)来标识具体的元素。例如,只初始化book结构的成员value,可以这样做:
    struct book surprise = { .value = 10.99 };
    可以按照任意的顺序使用指定初始化项目:
    struct book gift = { .value = 25.99,
                                    .author = "James Broadfool",
                              &nb


相关文档:

S3C24XX体系的Linux GPIO控制相关API实现

GPIO(General Purpose Input/Output的缩写)就是芯片的引脚,引脚是可编程的可对引脚的工作模式进行设置:输入模式(检测输入信号),输出模式(输出0或1),高阻状态(常用于AD转换),还有禁止或允许上内部下拉电阻(上拉:管脚通过电阻接高电平,下拉:管脚通过电阻接地,也可以外部接上拉或下拉电阻),还有管脚复用等功能,即 ......

linux下的读配置文件的程序

config.h
/*--  
   
  Copyright   (c)   2004   Shenzhen   Huaren   Education   Co.Ltd  
   
  File   Name:  
  config.h  
  Ver ......

linux 命令

、Linux里查看所有用户
  linux里,并没有像windows的net user,net localgroup这些方便的命令来治理用户.
  Xwindows界面的就不说了.
  (1)在终端里.其实只需要查看 /etc/passwd文件就行了.
  (2)看第三个参数:500以上的,就是后面建的用户了.其它则为系统的用户.
  或者用cat /etc/passwd |cut -f 1 -d : ......

linux 密码回显

一,绪论
1.课题背景
Linux下有系统提供的getpass()函数,可由于写的时候太早了,只支持8位字符,同时有安全隐患(溢出!),Linux出于对密码的保密,输入的字符是不会显示到屏幕上的。在登陆函数和密码修改函数内都没有提供密码回显提示,但是此设计对于一般的桌面级应用的初级用户带来了一定的麻烦,而且,没有任何密码 ......

Linux Module编程小结

1. Makefile
使用Makefile来编译模块,不能直接使用gcc。
实际使用的是当前活动内核模块的Makefile来完成相关工作的。
ifneq ($(KERNELRELEASE),)
    obj-m := hello.o calculate.o
else
        KDIR := /lib/modules/2.6.18-53.el5xen/build
all:
 &nbs ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号