内核中device_create创建的设备怎么删除?
在内核中,可以使用device_destroy函数来删除通过device_create函数创建的设备。
device_destroy函数的原型如下: void device_destroy(struct class *class, dev_t devt)
其中,class参数是设备所属的类,devt参数是设备的设备号。
示例代码如下所示: #include <linux/device.h>
// 创建设备 struct class *my_class; struct device *my_device;
my_class = class_create(THIS_MODULE, "my_class"); my_device = device_create(my_class, NULL, MKDEV(MAJOR(dev_num), MINOR(dev_num)), NULL, "my_device");
// 删除设备 device_destroy(my_class, MKDEV(MAJOR(dev_num), MINOR(dev_num))); class_destroy(my_class);
在上面的示例代码中,首先使用class_create函数创建一个名为"my_class"的类,然后使用device_create函数创建一个名为"my_device"的设备,并将其关联到"my_class"类上。最后,使用device_destroy函数和class_destroy函数来删除设备和类。
需要注意的是,device_destroy函数只会删除设备,而不会删除设备所属的类。如果要删除设备所属的类,需要在删除设备之后再调用class_destroy函数。
原文地址: https://www.cveoy.top/t/topic/jcav 著作权归作者所有。请勿转载和采集!