我获得了一些资源列表,以便在C中以编程方式获得它们的价值。虽然我知道它们太具体而且不是非常重要或通用,仍然由于我的智能老板,我只是想对列表有意见。请记住它可以在任何类型的基于Linux的设备上运行,可能是台式机,笔记本电脑甚至是嵌入式设备,如rpi或edison,gallileo
SERIAL_NO /*vendor specific*/
BATTERY_LEVEL /*not generic*/
HEAP /*only program specific*/
CPU_FREQUENCY /*vendor specific register*/
PROCESSOR_TYPE /*vendor specific register*/
PROCESSOR_SPEED /*vendor specific register*/
STORAGE /*I am not really sure*/
MODEL /*vendor specific register*/
IMEI /*vendor specific driver, not generic*/
DEVICE_TYPE /*vendor specific register*/
ALTITUDE /*vendor specific sensor, not generic*/
SPEED /*vendor specific sensor*/
BEARING /*vendor specific*/
如果有人有任何建议,无论是技术还是战略,请告诉我。厌倦了这种不合逻辑的要求。对不起,如果我违反了SO规则。
答案 0 :(得分:1)
一些建议:
查找转储/使用您要查找的信息的工具strace
他们想知道在哪里寻找这个信息
查找转储/使用您要查找的信息的开源工具 阅读代码
查看/proc
,例如cpuinfo
答案 1 :(得分:1)
它还取决于您感兴趣的设备类型(网络适配器,块设备等)。对于他们中的许多人来说,获取一些信息的常用方法可以是sysctl
,它为您提供本机C API,这意味着该解决方案应该可以在支持该设备的所有平台之间移植。因此,您可能要做的是搜索确切的驱动程序处理您的设备并查看它支持的sysctls。为此,您需要读取其头文件[s],或其实现或其doc(如果存在)。 man sysctl
以供参考。但是,我不知道任何一种获取随机设备信息的“通用”方式。