ユーザープログラムとカーネルモジュールで構成されるプログラムを書いています。カーネルモジュールは、データを収集してユーザープログラムに「送信」する必要があります。これは、/procファイルを介して実行する必要があります。今、私はファイルを作成しました、すべてがうまくいっていて、答えのためにインターネットを読んで何年も費やしました、そしてそれでもそれを見つけることができません。カーネル空間から/procファイルをどのように読み書きしますか?procfileに提供されたwrite_procとread_procは、USERスペースからのデータの読み取りと書き込みに使用されますが、モジュールが/procファイル自体を書き込めるようにする必要があります。
5732 次
2 に答える
9
それはそれがどのように機能するかではありません。ユーザー空間プログラムがファイルを開くと、ケースバイケースでオンザフライで生成されます。それらのほとんどは読み取り専用で、共通のメカニズムによって生成されます。
- create_proc_read_entry でエントリを登録する
- ファイルが読み込まれたときに呼び出されるコールバック関数 (慣例により read_proc と呼ばれます) を提供します。
- このコールバック関数は、提供されたバッファーにデータを入力し、(通常) proc_calc_metrics を呼び出して、ユーザー空間に提供されたファイル ポインターなどを更新する必要があります。
(カーネルから)procfsファイルに「書き込む」のではなく、ユーザー空間が要求したときに結果を動的に提供します。
于 2010-12-09T16:29:58.903 に答える
0
ユーザー空間にデータを送信する方法の 1 つは、seq_files です。カーネル パラメーターを構成 (書き込み) するために、sys-fs ノードを検討することをお勧めします。
ありがとう、ビジェイ
于 2010-12-09T19:12:52.903 に答える