سؤال

أحاول استخدام timerfd_create وtimerfd_settime ضمن Debian Linux lenny.يقول manpage لتشمل <sys/timerfd.h>.لا يمكن تحديد موقع هذا الملف على نظامي.وفقاً للبحث في حزمة دبيان، فإن الحزم الوحيدة التي تحتوي على timerfd.h هي حزم linux-headers-*.

لقد قمت بتثبيت الحزم linux-headers-2.6.26-1-amd64 وlinux-headers-2.6.26-1-common.لقد حاولت تضمين الملف /lib/modules/2.6.26-1-amd64/build/include/linux/timerfd.h (وليس تضمينه <sys/timerfd.h>).ولكن بعد ذلك أحصل على خطأ الرابط التالي:
Slave.c:(.text+0x166):المرجعية غير معرفة ل timerfd_ceate
Slave.c:(.text+0x1e5):المرجعية غير معرفة ل timerfd_settime

كان أمر البناء الخاص بي هو gcc -oslaveslave.c -L../libs -lcan -lutils -lrt

مكتبات can وutils هي مكتبتي الخاصة.لا يستخدم أي منهم أو يحدد إحدى وظائف timerfd_*.لقد حاولت -lrt لأن timer_create وtimer_settimer يحتاجان إليه، حتى لو لم يكن موجودًا في الصفحة الرئيسية.برنامج اختبار مع timer_create وtimer_settimer يعمل بدون مشاكل وكما هو متوقع.

ما هي الحزم التي أحتاج إلى تثبيتها، وما هي المكتبة التي أحتاج إلى الارتباط بها، وما هي الملفات المضمنة التي أحتاجها لاستخدام timerfd_create وtimerfd_settimer.

شكرا إدجر

هل كانت مفيدة؟

المحلول

دعم هذه الوظائف جديد في Linux وglibc، فأنت بحاجة إلى Linux kernel 2.6.25 أو أفضل و glibc 2.8 أو أعلى.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top