Pregunta

Estoy tratando de usar timerfd_create y timerfd_settime en Debian Linux lenny. La página de manual dice incluir <sys/timerfd.h>. Este archivo no se puede ubicar en mi sistema. De acuerdo con la Búsqueda de paquetes de Debian, los únicos paquetes con timerfd.h son los paquetes linux-headers- *.

He instalado los paquetes linux-headers-2.6.26-1-amd64 y linux-headers-2.6.26-1-common. Intenté incluir el archivo /lib/modules/2.6.26-1-amd64/build/include/linux/timerfd.h (y no incluir timerfd_ceate). Pero luego aparece el siguiente error de enlazador:
slave.c :(. text + 0x166): referencia indefinida a timerfd_settime
slave.c :(. text + 0x1e5): referencia indefinida a <=>

Mi comando de compilación era gcc -o slave slave.c -L ../ libs -lcan -lutils -lrt

Las bibliotecas can y utils son mías. Ninguno de ellos usa o define una de las funciones timerfd_ *. Intenté -lrt porque timer_create y timer_settimer lo necesitan, incluso si no está en la página de manual. Un programa de prueba con timer_create y timer_settimer funciona sin problemas y como se esperaba.

¿Qué paquetes necesito instalar, a qué biblioteca debo vincular y qué archivos de inclusión necesito para usar timerfd_create y timerfd_settimer?

Gracias Edger

¿Fue útil?

Solución

El soporte para estas funciones es nuevo en linux y glibc, necesita el kernel de Linux 2.6.25 o superior y glibc 2.8 o superior.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top