自动创建设备节点

1、自动创建设备节点
//这是函数所需得头文件
#include <linux/device.h>
struct class *cls;
//创建class结构体
cls = class_create(owner, name)
功能:向用户空间提交目录信息
参数:
@owner :THIS_MODULE
@name :目录名字
返回值:成功返回struct class *指针
失败返回错误码指针 int (-5)
struct device *device_create(struct class *class, struct device *parent,dev_t devt, void *drvdata, const char *fmt, …)
dev_t = MKDEV(major,minor)
major = MAJOR(dev_t); /可以获取主设备号
minor = MINOR(dev_t); //可以获取此设备号

      struct class *cls;
      int i;
      const count = 3; //定义你要创建多少的节点(inode)
      cls = class_create(THIS_MODULE,CDEVNAME);//class得创建
      if(IS_ERR(cls)){//返回值得判断
                            printk("class create error\n");
                            return PTR_ERR(cls);
                     }  
   dev = device_create(cls,NULL,MKDEV(major,0),NULL,"mycdev");//device的创建
   if(IS_ERR(dev)){//返回值的判断
		       printk("device create error\n");
		        return PTR_ERR(dev); //返回一个宏
       } 
       //如果你要一次性创建多个次设备号你也得创建搓个节点,可以用否循环来创建
       for(i=0; i<count; i++){
                       ev = device_create(cls,NULL,MKDEV(major,i),NULL,"mycdev%d",i);
                       if(IS_ERR(dev)){
                       rintk("device%d create error\n",i);
                       return PTR_ERR(dev);
                   }

//释放结构体
//void class_destroy(struct class *cls)
//void device_destroy(struct class *class, dev_t devt)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值