Domanda

Sto cercando di usare timerfd_create e timerfd_settime sotto Debian Linux lenny. La manpage dice di includere <sys/timerfd.h>. Questo file non può essere trovato sul mio sistema. Secondo il Debian Package Search gli unici pacchetti con timerfd.h sono i pacchetti linux-headers- *.

Ho installato i pacchetti linux-headers-2.6.26-1-amd64 e linux-headers-2.6.26-1-common. Ho provato ad includere il file /lib/modules/2.6.26-1-amd64/build/include/linux/timerfd.h (e non incluso timerfd_ceate). Ma poi ricevo il seguente errore del linker:
slave.c :(. testo + 0x166): riferimento indefinito a timerfd_settime
slave.c :(. text + 0x1e5): riferimento indefinito a <=>

Il mio comando build era gcc -o slave slave.c -L ../ libs -lcan -lutils -lrt

Le librerie can e utils sono mie. Non utilizzano o definiscono una delle funzioni timerfd_ *. Ho provato -lrt perché timer_create e timer_settimer ne hanno bisogno, anche se non è nella manpage. Un programma di test con timer_create e timer_settimer funziona senza problemi e come previsto.

Quali pacchetti devo installare, a quale libreria devo collegarmi e quali file includere devo usare timerfd_create e timerfd_settimer.

Grazie Edger

È stato utile?

Soluzione

Il supporto per queste funzioni è nuovo in Linux e glibc, è necessario il kernel Linux 2.6.25 o migliore e glibc 2.8 o superiore.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top