linux内核register_chrdev_region()系列函数
内核中所有已分配的字符设备编号都记录在一个名为 chrdevs
散列表里。该散列表中的每一个元素是一个 char_device_struct 结构,它的定义如下:
static struct char_device_struct {
struct char_device_struct *next; // 指向散列冲突链表中的下一个元素的指针
unsigned int major; // 主设备号
unsigned int baseminor; // 起始次设备号
int minorct; // 设备编号的范围大小
char name[64]; // 处理该设备编号范围内的设备驱动的名称
struct file_operations *fops; // 没有使用
struct cdev *cdev; // 指向字符设备驱动程序描述符的指针
} *chrdevs[CHRDEV_MAJOR_HASH_SIZE];
cdev结构体定义如下:
struct cdev {
struct kobject kobj; //内嵌kobject 对象
struct module *owner; //所属模块
const struct file_operations *ops;
//文件操作结构,在写驱动时,其结构体内的大部分函数
struct list_head list;
dev_t dev; &nbs
相关文档:
头文件:
#include <unistd.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <errno.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <sys/un.h>
#include <netdb.h>
#include <arpa/inet.h>
#include < ......
在linux中grep命令是非常有用的,它和管道(|)配合使用,非常强大,用于搜索文本文件.如果想要在几个文本文件中查找一字符串,可以使用
‘grep’命令。‘grep’在文本中搜索指定的字符串。
假设您正在‘/usr/src/linux/Documentation’目录下搜索带字符串‘magic’的文件:
$ gre ......
linux磁盘操作命令详解
收藏
1.分区与格式化原理
硬盘的分区分主MBR(446byte),主分区表(64byte),分区.
2.使用linux中的fdisk分区
fdisk /dev/sdb
p 打印分区表
t 转换分区表
w 写进分区表 ......
本文给出了一个通用的线程池框架,该框架将与线程执行相关的任务进行了高层次的抽象,使之与具体的执行任务无关。另外该线程池具有动态伸缩性,它能根据执行任务的轻重自动调整线程池中线程的数量。文章的最后,我们给出一个简单示例程序,通过该示例程序,我们会发现,通过该线程池框架执行多线程任务是多么的简单。
&nb ......