udev如何取得系统主 次设备号?
时间:2007-04-25 来源:hauto
当linux系统启动时,/dev目录是空的。udev程序扫描/sys/class目录,查找名字为dev的文件。
每一个这样的dev文件,其内容是系统支持逻辑设备的主次设备号。udev根据主次设备号,在/dev目录
下创建相应的文件。同时,udev会根据配置文件,分配文件名并创建符号链接。最终,对于此系统内核
支持的每一种设备,都会在/dev目录下有相应的设备文件。
udev源码:Udev_device.c
attr = sysfs_attr_get_value(udev->dev->devpath, "dev");
if (attr != NULL) {
if (sscanf(attr, "%u:%u", &maj, &min) == 2)
return makedev(maj, min);
} 这里sysfs_attr_get_value函数,判断devpath目录下是否存在dev文件,若有则读取文件内容. sscanf()函数根据attr的到主设备号maj,次设备号min makedev函数创建设备号
if (attr != NULL) {
if (sscanf(attr, "%u:%u", &maj, &min) == 2)
return makedev(maj, min);
} 这里sysfs_attr_get_value函数,判断devpath目录下是否存在dev文件,若有则读取文件内容. sscanf()函数根据attr的到主设备号maj,次设备号min makedev函数创建设备号
相关阅读 更多 +