使用 ioctl 接口可以获取各种信息。您如何获得产品名称、类别、供应商名称、子系统名称等额外信息?
有几个命令行工具可用,例如: 1. lshw -C network
2.检测装有 linux 的系统上的 nic 和端口
您可以启动一个进程并获得结果,但是是否有任何原始 c/c++ 方法来获取上述信息?
干杯
普拉尚
使用 ioctl 接口可以获取各种信息。您如何获得产品名称、类别、供应商名称、子系统名称等额外信息?
有几个命令行工具可用,例如: 1. lshw -C network
2.检测装有 linux 的系统上的 nic 和端口
您可以启动一个进程并获得结果,但是是否有任何原始 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,不幸的是,这些信息有被更改的习惯,因此不能依赖:(