如何区分/ proc / partitions中的设备类型?

时间:2012-02-22 15:41:48

标签: c++ linux usb

我想编写一个C ++函数,它可以为我提供一个机器(运行Linux)中的硬盘列表,但我想过滤掉任何USB闪存驱动器。

当我读/ proc / partitions时,我找到了sda和sdb,但我认为这还不足以区分主硬盘和USB闪存盘。有没有办法做到这一点?

谢谢!

1 个答案:

答案 0 :(得分:2)

您可以使用符号链接:

/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设备。

查看这些符号链接指向的目录,还有一堆有用的信息。