私は、Linuxカーネルの/net
ディレクトリにあるコードを調整しています。Linuxカーネルから標準ライブラリ呼び出しを行うにはどうすればよいですか?
私は印刷のようなものを試していましたが、関連するヘッダーはありません(stdlib.h
、stdio.h
など)。カーネルレベルでこれをどうすればできますか?
私は、Linuxカーネルの/net
ディレクトリにあるコードを調整しています。Linuxカーネルから標準ライブラリ呼び出しを行うにはどうすればよいですか?
私は印刷のようなものを試していましたが、関連するヘッダーはありません(stdlib.h
、stdio.h
など)。カーネルレベルでこれをどうすればできますか?
カーネルでユーザー空間ライブラリ関数を使用することはできません。カーネルによってエクスポートされた関数のみを使用してください。したがって、stdio.h
,stdlib.h
などはありません。カーネルで何かを印刷する場合は、printk()
関数があります。これは、ユーザ空間のprintf()
に相当します。
私のブログ記事Linux Module Programming Part1とPart2も参照してください。
カーネルモジュールはC標準ライブラリにアクセスできません。カーネルにはいくつかの機能があります。カーネルソースまたは好きなLinuxカーネルプログラミングブック(Linux Device Driversがない場合は、オンラインで入手できます)のlib
directoryをご覧ください。 printfのデバッグには、printk
があり、カーネルログにメッセージを出力します。
kernel/signals.cのkill_pgrp()はどうでしょうか? – user489152