2014-09-16 3 views
0

C++에서 작성된 Linux 용 프로그램에서 프로그램을 실행하는 시스템의 PCI 장치에 대한 정보 (장치 계층 포함)를 표시하고 싶습니다. 거기에 C 또는 C++ - Linux-API가 있습니까?C/C++ - PCI 장치 정보 API

/sys/devices 및/sys/bus/pci/devices가 있습니다. 해당 디렉토리의 정보는 아주 원시이며 두 번째 lspci를 구현하지 않는 것이 좋습니다.

+2

불행히도, 두 번째'lspci'를 구현해야합니다. –

+2

"lspci"의 출력을 파싱 할 수도 있습니다. 'popen' 함수를 사용해보십시오. –

답변

1

내가/SYS/장치 및로부터 정보를 얻을 곳 정확히/SYS/버스/PCI/장치

에서 찾고 있습니다. 개인적으로 나는 거기에서 직접 그러한 정보를 가져 오는 것을 선호합니다. 그러나 당신은 그 libudev이 당신의 요구에 맞는 것을 발견 할 것입니다. 그러나 udev는 널리 보급되어 있지만 일부 시스템에서는 제공되지 않을 수도 있습니다.

+0

libudev가 멋지게 보이며 내 대상 시스템에 있습니다. 두 개의/sys 디렉토리에있는 정보를 구문 분석하는 방법에 대한 좋은 문서가 있습니까? – magmabyte

+1

@magmabyte : sysfs는 Linux 커널 소스 문서 트리에 광범위하게 설명되어 있습니다. 웹 (https://www.kernel.org/doc/Documentation/filesystems/sysfs.txt 및 https://www.kernel.org/doc/Documentation/sysfs-rules.txt)에서 읽을 수 있습니다. – datenwolf