inode中对于编写驱动代码有用的主要成员是dev_t i_rdev,struct cdev * i_cdev。
对于代表设备文件的结点,dev_t i_rdev包含了实际的设备编号。内核中提供了两个宏可以提取inode中的主次编号。
unsigned int iminor(struct inode * inode);
unsigned int imajor(struct inode * inode);
当结点inode指的是一个字符设备文件时,成员struct cdev * i_cdev指针指向的就是这个字符设备。
int register_chrdev_region(dev_t first, unsigned int count, char * name);
first是手动给定的设备编号,主、次设备号通过MKDEV宏生成。count是所请求的连续设备号的个数。
int alloc_chrdev_region(dev_t * dev, unsigned int firstminor, unsigned int count, char * name);
这是动态分配设备号。
要注意的是,这两个函数仅仅是注册设备号!如果要和cdev关联起来,还要调用cdev_add()。
cdev 和 inode的关系可以用下图描述清楚:
图中两个inode代表有两个设备文件,指针*i_cdev连接到相同的cdev代表这两个设备文件指向同一类型设备。而cdev下的list链表表示cdev这种类型的设备有两个。
来源:网络
struct hostent *gethostbyname(const char *name); gethostbyname函数根据域名解析出服务器的ip地址,它返回一个结构体struct hostent: 除了服务器的ip地址外,这个结构体还包含了更多服务器的信息,有: char *h_name This is the “official” name of the hos...
C语言的struct可以看做变量的结合; struct的语法规则: struct TS(结构体名)(此处的结构体名可以不写,这个结构体就叫匿名结构体) { //成员列表 }; 定义变量的两种形...
#include <iostream> using namespace std; typedef union { long i; //32位机占4个字节 int k[5]; //5个int占20个字节,一个int是4个字节 char c; //c实际只占一个字节,但...
转载:http://blog.csdn.net/hunanchenxingyu/article/details/25218351 简单归纳:fd只是一个整数,在open时产生。起到一个索引的作用,进程通过PCB中的文件描述符表找到该fd所指向的文件指针filp。 文件描述符的操作(如: open)返回的是一个文件描述符,内核会在每个进程空间中维护一个文件描述符表, 所有打开的文件都将通过此表中的文...
1、文件描述符和inode号码是不同的两个东西。 2、对于每个进程,系统会建立一个进程控制块(PCB)来保存相关的信息,而这个PCB在内核中的表现其实就是一个称为task_struct的结构体,这个结构体的成员用来保存与此进程有关的相关信息,其中有个成员是struct file_struct *files,它是用来找到此进程所有打开的文件列表的,files变量指向的是st...
先上一张图: task_struct不用多说,是Linux中的进程描述符; fs字段指向fs_struct结构体,是用来记录这个进程的工作目录pwd,和它的根目录root;显然目录信息是由dentry结构体保存的;在linux中,目录也是一种文件,因此dentry结构体会有指向inode结构体的指针字段d_inode; file字段指向files_struct结构体,这个结构体是用来记录该进程打开...
byte 是字节数据类型 ,是有符号型的,占1 个字节;大小范围为-128—127 。char 是字符数据类型 ,是无符号型的,占2字节(Unicode码 );大小范围 是0—65535 ;char是一个16位二进制的Unicode字符,JAVA用char来表示一个字符 ...
本篇目录 你真的了解并发吗?为什么要使用并发? 多线程和并发 多线程和多进程 多线程一定快吗 学习并发的四个阶段 一、你真的了解并发吗?为什么要使用并发? 我们有没有见过并发的场景呢? 其实并发是无处不在的,比如,淘宝的双十一就是一个非常高的并发量,就是很多人同时去访问一个网站,而这个网站却能够支撑大量的并发访问,这就是一个并发的场景. 细致的说,web容器、数据库服务器,等等各类的服务器软件,都...
1.centos7是在虚拟机中安装的 2.首先启动centos7,我安装的是全命令行的系统 3.由于nginx是用C语言开发的,所以需要依赖gcc环境,如果没有gcc环境,则需要安装 安装gcc命令: 注意:安装过程中如果出来选择,都是选y 出现如下图,表示安装成功 4.nginx的http模块使用pcre来解析正则表达式,所以需要perl兼容的正则表达式库,...
前言:如果在电脑vs编写的程序生成的exe需要在其他没有安装环境的电脑运行的话,需要在exe所在的目录下添加所需要的dll,即动态链接库。 步骤一:在VS中生成exe可执行文件,exe生成路径如果是64位则是在x64文件夹中,具体看发布的版本是debug还是release选择对应文件夹就会有了。32位同理。 步骤二:生成QT所需要的dll(动态链接库库) 1、将生成的e...
Possible Duplicate: Format .NET DateTime “Day” with no leading zero Is there a way to remove the leading zeros in the date format For example, X.ToString("MM/dd/yy") returns 07/0...
how can i upload files larger than 2 gb to my FTP server using powershell, i am using the below function i am getting this error while uploading. i have used other functions but the result was so slow...
I am using firebug for inspect element . But now I want to make it disabled. Please help me. Thanks in advance. Top right of Firebug, you have 3 red buttons. It's the last one, like a "power"...
I would like the function dateCreate to pass the given parameters to the ones from the struct. I have tried by having the Date d variable as a function parameter but it still shows me the error "...
When I press left or up arrow keys the sprite gets out of the window/screen. My code: I don't know what could be wrong, my window is 800x600 but if I set m_PlayerShipTex.Width >= 800 I can get only...