用C++获取设备列表

用C++获取设备列表,c++,freebsd,C++,Freebsd,我是免费的。我想得到所有连接到我的系统的设备,并用C++保存它们的信息。因此,我运行camcontrol devlist命令。输出为: <OCZ-VERTEX4 1.4.1.3> at scbus0 target 0 lun 0 (pass0,ada0) <OCZ-AGILITY3 2.15> at scbus0 target 1 lun 0 (pass1,ada1) <OCZ-AGILITY3 2.15>

我是免费的。我想得到所有连接到我的系统的设备,并用C++保存它们的信息。因此,我运行camcontrol devlist命令。输出为:

<OCZ-VERTEX4 1.4.1.3>              at scbus0 target 0 lun 0 (pass0,ada0)
<OCZ-AGILITY3 2.15>                at scbus0 target 1 lun 0 (pass1,ada1)
<OCZ-AGILITY3 2.15>                at scbus1 target 0 lun 0 (pass2,ada2)
<OCZ-AGILITY3 2.15>                at scbus1 target 1 lun 0 (pass3,ada3)
<OCZ-AGILITY3 2.15>                at scbus3 target 0 lun 0 (pass4,ada4)
< USB FLASH DRIVE PMAP>            at scbus4 target 0 lun 0 (da0,pass5)
我把这个输出放在一个文件中,在C++中用GETLION,只得到来自SCBUS0目标0 Lun 0 PASS0,ADA0的一行,忽略第一部分。 我想获取ada0、ada1、ada2、ada3、ada4、da0,然后使用/usr/local/sbin/smartctl-I/dev/get它的信息以及其他类似于da0、cd0的信息,。。。此命令中不会有输出的,请保存其名称


我不确定这是不是一个好办法。如果存在的话,请给我一个更好的解决方案,或者帮助我解决我的问题。

< P>如果你只对磁盘感兴趣,你可以考虑尝试使用。它提供了获取提供者的函数


另一种方法可能是使用libcam像camcontrol一样提取设备列表,然后您可以根据需要处理格式设置。您可以在的getdevlist函数中查看camcontrol程序是如何执行此操作的

谢谢你的回复。由于这个原因,camcontrol.c似乎非常好,但我不知道该如何使用这段代码。你能举个例子吗。Thnks