amd64でのDebian Linuxテストによるtimerfd_create
質問
Debian Linux lennyでtimerfd_createとtimerfd_settimeを使用しようとしています。マンページには、<sys/timerfd.h>
を含めるように記載されています。このファイルはシステム上にありません。 Debianパッケージ検索によると、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ファイルをインクルードしようとしました(timerfd_ceate
はインクルードしません)。しかし、その後、次のリンカーエラーが表示されます。
slave.c :(。text + 0x166):timerfd_settime
への未定義の参照
slave.c :(。text + 0x1e5):<=>
私のビルドコマンドはgcc -o slave slave.c -L ../ libs -lcan -lutils -lrt
でしたcanおよびutilsライブラリは私自身のものです。それらのいずれも、timerfd_ *関数の1つを使用または定義しません。 timer_createとtimer_settimerが必要であるため、マンページにない場合でも-lrtを試しました。 timer_createおよびtimer_settimerを使用したテストプログラムは、問題なく正常に機能します。
インストールする必要があるパケット、リンクするライブラリ、およびtimerfd_createとtimerfd_settimerを使用する必要があるインクルードファイル。
ありがとう エッジャー
解決
これらの機能のサポートはLinuxおよびglibcで新しく追加されました。Linuxカーネル2.6.25以降 glibc 2.8以降が必要です。