電子書籍の厳選無料作品が豊富!

プログラムでgettid関数を使用しようとしているのですが、コンパイルでエラーが出てしまいます。

カーネルは2.4.18です。

以下のようなエラーメッセージです。
In function `gettid':
`__NR_gettid' undeclared (first use in this function)
(Each undeclared identifier is reported only once
for each function it appears in.)

一応調べて書式通り記述しているつもりなのですが。
#include <sys/types.h>
#include <linux/unistd.h>
#include <errno.h>
_syscall0(pid_t,gettid)
pid_t gettid(void);

どなたか原因にあたりがつく方おられましたら、ご助言いただけないでしょうか。
よろしくお願い致します。

A 回答 (1件)

使い方に問題があるわけではなく、カーネルやカーネルヘッダのバージョンの問題だと思います。



カーネルヘッダとカーネルソース(インストール場所は/usr/src/linux-2.4/)があるという前提で、以下のコマンドを実行してみてください。

(1) grep gettid /usr/include/asm/unistd.h
(2) grep gettid /usr/src/linux-2.4/arch/i386/kernel/entry.S

(1),(2)ともに結果が表示されない場合は、カーネルヘッダとカーネルのバージョンアップを、
(1)だけ表示されない場合は、カーネルヘッダのバージョンアップを試されてはいかがでしょうか?
    • good
    • 0
この回答へのお礼

アドバイス恐れ入ります。

(1)、(2)ともに実行してみましたが、結果表示されませんでした。

LINUXごとバージョンを新しくしてみたらうまく出来ました。

ありがとうございました。

お礼日時:2005/06/06 21:09

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!