Liste aller USB Geräte anzeigen (unter Linux mit C)

2012-11-13 von Mario

Mit diesem Beispiel können alle angeschlossenen USB-Geräte, unter Linux, ausgelesen werden.

Das Ergebnis sieht wie folgt aus.

Zum Vergleich, die Ausgabe von dem Befehl lsusb.

Damit das Programm auch kompiliert, wird eine Library benötigt.

Installation der USB Library

sudo apt-get install libusb-dev

Compile

gcc find_usb.c -o find_usb.o -lusb

 

Code

#include <stdio.h>
#include <stdlib.h>
#include <usb.h>

int main()
{

    struct usb_bus *bus;
    struct usb_device *dev;

    usb_init();
    usb_find_busses();
    usb_find_devices();

    for (bus = usb_get_busses(); bus; bus = bus->next)
    {

        printf("Bus %s \n", bus->dirname);

        for (dev = bus->devices; dev; dev = dev->next)
        {
            printf("Device %s vid=%04X, pid=%04X\n", dev->filename,    
            dev->descriptor.idVendor, dev->descriptor.idProduct);
        }
    }

    return 0;
}

Viel Spaß damit! :)

Kategorie: IT Schlagwörter: , , , , ,