我试图搜索 电流 - > FS-> PWD 我所能找到的只是一组标志: *电流 - > FS-> pwd.mnt-> mnt_sb-> s_bdev-> bd_disk->标志* 其中GENHD_FL_REMOVABLE设置为可移动设备
但是我总是得到相同的标志设置(据我所知,得到的defdev总是指向同一个设备(/ dev / sda))。
所以现在我通过解析mtab得到包含我的文件的设备名称(/ dev / sdc),但仍然找不到,可以删除它。
是否有可能通过设备名称获取block_device结构? (例如,可以通过调用获得“文件”结构 fd = open(“name”) fl = fged(fd) 其中fl指向“文件”结构)
答案 0 :(得分:2)
您可以使用class_dev_iter_init
和class_dev_iter_next
对块设备进行迭代。有关用法,请参阅block/genhd.c
blk_lookup_devt
中的代码。
拥有设备后,您可以使用dev_to_disk
获取struct gendisk *
,您可以在其中查看可移动标记。
答案 1 :(得分:1)
读取/ sys / block / dev-name / removable,因为如果设备是可移动的,它应该包含1,否则应该包含0。 (dev-name =设备名称:sda,hda,fd0,...)