3

私はカーネル空間での作業が初めてなので、誰かが私が抱えている問題を解決してくれることを願っています.

ユーザー空間の c/c++ プログラムの関数の暗黙的な宣言に関連する多くの質問を見てきましたが、私が抱えている問題はカーネル空間では異なる方法でアプローチされる可能性があると思います。

私が取り組んでいるコードは、私が取り組んでいるドライバーからユーザーアプリケーションにシグナルを送ることをテストすることですが、問題は、linux/signal.h で宣言された関数 send_sig_info をヘッダーで宣言するまで使用できなかったことです。私自身のドライバーソース。そこで宣言された関数呼び出しにアクセスするためにヘッダーを修正するためにインクルードした場合、それは機能するはずです。

したがって、自分のヘッダーで send_sig_info を宣言しないと、次のようになります。

error: implicit declaration of function ‘send_sig_info’

そして、ヘッダーファイルに追加します:

static int send_sig_info(int sig, struct siginfo *info, struct task_struct *p);

私のコードをうまくコンパイルできるようにします。

これがなぜなのか誰にも分かりますか?

ありがとう。

4

0 に答える 0