# libgudev uevent



## Der Wolf (15. Dezember 2013)

Hallo Leute,

ich wollte mir unter Linux einen kleinen Daemon schreiben, der darauf wartet, dass ich eine Kinect mit dem Laptop verbindet. Dafür wollte ich die libgudev verwenden und mich auf das uevent Signal verbinden und benachrichtigt zu werden, wenn das Device angeschlossen wird. Allerdings scheine ich ein entsprechendes Signal nicht zu bekommen obwohl ich unter "dmesg" sehe, dass die Kinect angeschlossen und wieder vom Laptop entfernt wird. Ich hoffe es kann mir jemand weiterhelfen.


```
#include <stdio.h>
#include <unistd.h>

#include <gudev/gudev.h>
#include <glib-object.h>

void signalHandle(GUdevClient *pClient, gchar *action, GUdevDevice *pDevice, gpointer *pData)
{
        printf("Signal received.\n");
}

int main(int argc, char *argv[])
{
        g_type_init();
        const gchar* subsystems[] = {"usb", NULL};

        GUdevClient *pClient = g_udev_client_new(subsystems);
        g_signal_connect(pClient, "uevent", G_CALLBACK(signalHandle), NULL);

        while (true) {
                sleep(1);
        }
}
```

Gruß,
Wolf


----------



## deepthroat (16. Dezember 2013)

Hi.

Ich würde vermuten, das du zu aller erst mal einen Main Loop benötigst, ohne den funktioniert normalerweise in der Gtk+ Welt nichts...


----------



## Der Wolf (16. Dezember 2013)

Hmmm,  ich hätte angenommen, da ich nur die glib verwende bräuchte ich die gtk Initialisierung nicht. Ich kann es aber im Moment leider nicht testen, da ich noch im Büro bin.


----------



## Der Wolf (18. Dezember 2013)

Als kleine Rückmeldung: Es war tatsächlich die von deepthroat genannte main-loop die gefehlt hat. Vielen Dank für den Tipp deepthroat.

Gruß,
Wolf


----------

