我想写一个C++函数,它可以给我一个硬盘驱动器列表(运行Linux),但是我想过滤掉任何USB闪存驱动器。
当我读/proc/partitions时,我找到了sda和sdb,但我认为这还不足以区分主硬盘驱动器和USB闪存驱动器。有办法吗?
谢谢!

最佳答案

您可以在以下位置使用符号链接:

/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设备。
看看那些符号链接指向的目录,那里也有很多有用的信息。

关于c++ - 如何区分在/proc/partitions中找到的设备类型?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9397980/

10-10 02:03