我想在FreeBSD 9下使用C找到硬盘驱动器的名称(例如:ada、da等)。硬盘驱动器没有挂载(所以我不能使用statfs),可以包含不同类型的文件系统,也可以是不同的硬件架构。
此外,如果有一个基于shell的解决方案(不需要转换到camcontrol输出),我会很高兴听到它。
如果您只是在查找设备名称,您可以在/dev/下查找与您要查找的设备相匹配的设备。一台机器可以有许多硬盘驱动器,并且可以使用别名。您还可以具有特定于某种RAID控制器的设备名称,如/dev/mfid、/dev/aacd、/dev/mfisyspd或/dev/twe。
您应该查看geom子系统来了解这些东西是如何工作的。要查看的手册页:geom(4)、geom(4)和libgeom(3)。
您可以阅读以了解系统配置方式的快速sysctl,包括kern.geom.conftxt和kern.geom.confxml,这取决于您是否希望文本作为代码的输入。