В моей программе, написанной для Linux в C++, я хотел бы отобразить информацию (включая иерархию устройств) о PCI-устройствах системы, выполняющей программу. Есть ли C- или C++ -Linux-API для этого?
Я смотрю на /sys/devices и /sys/bus/pci/devices. Информация в этих каталогах довольно сырая, и я бы предпочел не реализовывать второй lspci.
Я смотрю /sys/devices и /sys/bus/pci/devices
Это именно то, откуда вы получаете свою информацию. Лично я предпочитаю получать такую информацию прямо оттуда. Но вы можете обнаружить, что libudev
подходит вам. Однако имейте в виду, что udev, будучи широко распространенным, может отсутствовать в некоторых системах.
lspci
.lspci
. Попробуйте функциюpopen
.