字符设备 register_chrdev_region()、alloc_chrdev_region() 和 register_chrdev()

本文深入探讨了Linux中使用alloc_chrdev_region函数动态分配设备编号的功能、参数说明、返回值及注意事项,帮助开发者理解如何避免手动指定设备号的缺点,并通过读取/proc/devices文件获取分配的主设备号。

函数原型:

  int alloc_chrdev_region(dev_t *dev,

  unsigned int -firstminor,

  unsigned int -count,

  char *name)

头文件 : <linux/fs.h>

函数功能:  动态分配设备编号

函数参数说明

  该函数需要传递给它指定的第一个次设备号firstminor(一般为0)和要分配的设备数count,以及设备名,调用该函数后自动分配得到的设备号保存在dev中。

  动态分配设备号可以避免手动指定设备号时带来的缺点,但是它却也有自己的缺点,那就是无法预知在/dev下创建设备节点,因为动态分配设备号不能保证在每次加载驱动module时始终一致(其实若在两次加载同一个驱动module之间并没有加载其他的module,那么自动分配的设备号还是一致的,因为内核分配设备号并不是随机的,但是书上说某些内核开发人员预示不久的将来会用随机方式进行处理),不过,这个缺点可以避免,因为在加载驱动module后,我们可以读取/proc/devices文件以获得Linux内核分配给该设备的主设备号。

返回值:成功返回0,失败返回-1

http://blog.youkuaiyun.com/tommy_wxie/article/details/7195471
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值