2011-08-10 16 views
2

私は、Linuxカーネルの/netディレクトリにあるコードを調整しています。Linuxカーネルから標準ライブラリ呼び出しを行うにはどうすればよいですか?

私は印刷のようなものを試していましたが、関連するヘッダーはありません(stdlib.hstdio.hなど)。カーネルレベルでこれをどうすればできますか?

+0

kernel/signals.cのkill_pgrp()はどうでしょうか? – user489152

答えて

5

カーネルでユーザー空間ライブラリ関数を使用することはできません。カーネルによってエクスポートされた関数のみを使用してください。したがって、stdio.h,stdlib.hなどはありません。カーネルで何かを印刷する場合は、printk()関数があります。これは、ユーザ空間のprintf()に相当します。

私のブログ記事Linux Module Programming Part1Part2も参照してください。

2

カーネルモジュールはC標準ライブラリにアクセスできません。カーネルにはいくつかの機能があります。カーネルソースまたは好きなLinuxカーネルプログラミングブック(Linux Device Driversがない場合は、オンラインで入手できます)のlib directoryをご覧ください。 printfのデバッグには、printkがあり、カーネルログにメッセージを出力します。

関連する問題