dev_t : 主设备号12位次设备号20位 相关内核代码: [plain] view plain copy /* MAJOR宏 提取主设备号 MINOR宏 提取次设备号 MKDEV宏 将指定主设备号和次设备号 转化为一个dev_t */ #define MINORBITS 20 #define MINORMASK ((1U << MINORBITS) - 1) #define MAJOR(dev) ((unsigned int) ((dev) >> MINORBITS)) #define MINOR(dev) ((unsigned int) ((dev) & MINORMASK)) #define MKDEV(ma,mi) (((ma) << MINORBITS) | (mi)) 主设备号分配: [plain] view plain copy //静态分配 int register_chrdev_region(dev_t from, unsigned count, const char *name) //动态分配 int alloc_chrdev_region(dev_t *dev, unsigned baseminor, unsigned count,const char *name) 设备号注销: [plain] view plain copy void unregister_chrdev_region(dev_t from, unsigned count)