[c++] libusb를 사용한 USB 디바이스 탐지
libusb는 USB 디바이스를 탐지하고 상호작용하기 위한 C 언어용 라이브러리이다. C++에서 libusb를 사용하여 USB 디바이스를 탐지하는 방법을 살펴보자.
libusb 설치
먼저 libusb를 설치해야 한다. 리눅스의 경우, 패키지 매니저를 사용하여 libusb 라이브러리를 설치할 수 있다. 아래는 Ubuntu에서의 예시이다.
sudo apt-get install libusb-1.0-0-dev
Windows의 경우 libusb의 바이너리 라이브러리를 다운로드하여 설치해야 한다. 이후에는 CMake와 같은 빌드 시스템을 사용하여 라이브러리를 링크한다.
C++에서 libusb 사용하기
다음으로 C++에서 libusb를 사용하여 USB 디바이스를 탐지하는 방법을 살펴보자. 아래는 libusb를 사용하여 USB 디바이스를 열고 정보를 얻는 간단한 예제이다.
#include <libusb-1.0/libusb.h>
#include <iostream>
int main() {
libusb_context *ctx = NULL;
libusb_init(&ctx);
libusb_device **devs;
ssize_t cnt = libusb_get_device_list(ctx, &devs);
if (cnt < 0) {
std::cerr << "Failed to get device list" << std::endl;
return 1;
}
for (ssize_t i = 0; i < cnt; ++i) {
libusb_device_descriptor desc;
libusb_get_device_descriptor(devs[i], &desc);
std::cout << "Vendor ID: " << desc.idVendor << ", Product ID: " << desc.idProduct << std::endl;
}
libusb_free_device_list(devs, 1);
libusb_exit(ctx);
return 0;
}
위의 예제는 libusb를 사용하여 USB 디바이스의 Vendor ID와 Product ID를 출력하는 간단한 프로그램이다. libusb를 사용하여 USB 디바이스와 상호작용하기 위한 더 많은 기능들을 사용할 수 있다.
libusb를 사용하면 C++ 프로그램에서 USB 디바이스를 탐지하고 다양한 작업을 수행할 수 있다.