Как я могу различить типы устройств, найденные в / proc / partitions? - PullRequest
0 голосов
/ 22 февраля 2012

Я хочу написать функцию C ++, которая может дать мне список жестких дисков в машине (под управлением Linux), но я хочу отфильтровать любые USB-накопители.

Когда я читаю / proc / partitions, я нахожу sda и sdb, но я думаю, что этого недостаточно, чтобы различать основной жесткий диск и USB-накопитель. Есть ли способ сделать это?

Спасибо!

1 Ответ

2 голосов
/ 22 февраля 2012

Вы можете использовать символические ссылки в:

/sys/block

Например, у меня есть:

$ ll
 ...
 sdb -> ../devices/pci0000:00/0000:00:0e.0/host1/target1:0:0/1:0:0:0/block/sdb
 sde -> ../devices/pci0000:00/0000:00:0e.2/host5/target5:0:0/5:0:0:0/block/sde
 sdf -> ../devices/pci0000:00/0000:00:0b.1/usb1/1-8/1-8:1.0/host8/target8:0:...
 sr0 -> ../devices/pci0000:00/0000:00:0d.0/host6/target6:0:0/6:0:0:0/block/sr0
 sr1 -> ../devices/pci0000:00/0000:00:0d.0/host6/target6:0:1/6:0:1:0/block/sr1

Вы можете легко обнаружить USB-устройство там.

Посмотрите на каталоги, на которые указывают эти символические ссылки, там также есть куча полезной информации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...