【发布时间】:2011-05-24 02:03:36
【问题描述】:
使用 ioctl 接口可以获取各种信息。您如何获得产品名称、类别、供应商名称、子系统名称等额外信息?
有几个可用的命令行工具,例如:
1.lshw -C network
2.detecting nic and ports on systems loaded with linux
您可以启动一个进程并获得结果,但是是否有任何原始 c/c++ 方法可以获取上述信息?
干杯
普拉尚特
【问题讨论】:
使用 ioctl 接口可以获取各种信息。您如何获得产品名称、类别、供应商名称、子系统名称等额外信息?
有几个可用的命令行工具,例如:
1.lshw -C network
2.detecting nic and ports on systems loaded with linux
您可以启动一个进程并获得结果,但是是否有任何原始 c/c++ 方法可以获取上述信息?
干杯
普拉尚特
【问题讨论】:
您要查找的所有信息都在/sys/bus/pci/devices/*/*:
class
device
driver
modalias
subsystem
subsystem_device
subsystem_vendor
vendor
你可以看到lspci(8)是如何通过strace -o /tmp/out lspci读取文件的,/tmp/out会有很多细节。 (我不知道有什么简单的方法可以将其限制为只是 NIC;我认为lspci(8) 和内核都有硬编码的 PCI ID 列表 ->名称映射。)
【讨论】:
查看 sysfs 或 procfs,不幸的是,这些信息有被更改的习惯,因此不能依赖:(
【讨论】: