надеюсь, что вы можете мне помочь: Я пытаюсь определить, является ли устройство съемным или нет, все, что у меня есть, - это имя устройства (/ dev/sdc). Фактически, мне нужно определить, когда файл на съемном носителе или на локальном диске по полному пути к этому файлу.получить флаги устройств по имени устройства
Я судимый искать в current-> FS-> PWD и все, что я смог найти множество флагов здесь: * current-> FS-> pwd.mnt-> mnt_sb- > s_bdev-> bd_disk-> флаги * где GENHD_FL_REMOVABLE набор съемных устройств
Но я всегда получаю те же флаги, установленные (как я понимаю, s_bdev всегда указывает на то же устройство (/ DEV/SDA)).
Итак, теперь я получаю имя устройства (/ dev/sdc), которое содержит мой файл, анализируя mtab, но до сих пор не могу найти, удалить его или нет.
Есть ли способ получить структуру block_device по имени устройства? (например, структура "файл", могут быть получены путем вызова FD = открыт ("название") фл = fged (FD) где эт указывает на "файл" структура)
Спасибо, кажется, решает мою проблему – Makc
Итак, используя этот способ, как я могу определить, какой из блочных устройств содержит мой открытый файл, если у меня есть только полный путь к этому файлу. – Makc
@Makc: Я думаю, вы можете использовать 'vfs_stat', он даст вам' struct kstat', в котором вы сможете сравнить 'dev_t' с блочным устройством. – Hasturkun