2012-02-22 6 views
0

(Linuxを実行している)マシンのハードドライブのリストを私に与えることができるC++関数を書こうと思っていますが、すべてのUSBフラッシュドライブを除外します。どのようにして/ proc/partitionsにあるデバイスタイプを区別できますか?

私は/ proc/partitionsを読みましたが、sdaとsdbが見つかりましたが、プライマリハードドライブとUSBフラッシュドライブを区別するには不十分だと思います。これを行う方法はありますか?

ありがとうございます!あなたがでシンボリックリンクを使用することができ

答えて

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デバイスを見つけることができます。

これらのシンボリックリンクが指すディレクトリを見ると、そこにも役に立つ情報がたくさんあります。

+0

うん、それは動作します。ありがとうございました! – mpcoder

関連する問題