我希望能够在C中检查我的Linux机器硬件。如何获取在C中的dmesg中显示的信息? 例如,对于键盘input消息:AT Translated Set 2 keyboard as / devices / platform / i8042 / serio0 / input / input0我想在我的程序中得到标签AT Translated Set 2和path/ devices /平台/ i8042 / serio0 /input/ INPUT 0。 任何想法如何做到这一点?
阿米特
你也可以看看/ proc中的文件内容。
/ proc / version,/ proc / ioports,/ proc / iomem,/ proc / meminfo等等都有很多信息。
/ proc / bus下的文件有关于系统硬件设备的附加信息。
我还建议查看usbutils和pciutils的源代码来获取来自lsusb和lspci命令的输出。
它使用klogctl调用。
最好的事情是自己阅读源代码,可以在这里下载: util-linux
你会想使用libhal,并连接到hal守护进程。 如果HAL不存在,请查找已安装的sysfs分区。 检出/ sys / devices,或通过/ sys / bus回退。
如果HAL和sysfs都不可用,请重新考虑您的方法或限制您的范围。