• ベストアンサー

カーネル内でのlogの計算

カーネル内でlogの計算(底は10)をするにはどうすればよいでしょうか? OSはFreeBSD6.2です。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • Lean
  • ベストアンサー率72% (435/603)
回答No.2

カーネルはほとんどC言語で書かれていますが、ライブラリ関数であるlog()はカーネル内部からは使用出来ません。 カーネル内にlogの計算をする関数があるかどうかは知りませんが、ない場合ライブラリのソースはあるのですから、そこからlog()の部分を流用すればいいのでは。

ryu0428
質問者

お礼

アドバイスありがとうございます。 /usr/src/lib/msun/src のファイルを流用して、logの計算ができました!

その他の回答 (1)

noname#98978
noname#98978
回答No.1

カーネルはほとんどC言語でできてますので、数学関数にlog() があります。

ryu0428
質問者

お礼

ご回答ありがとうございます。 しかし、/usr/src/sys/netinet/igmp.c などで、math.h をインクルードし、適当な関数の中で、logの計算をしてみましたが、カーネルのコンパイル時にmath.hというファイルはないというエラーが出てきてしまいます。

関連するQ&A