[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 디바이스를 탐지하고 다양한 작업을 수행할 수 있다.

참고 자료