1

カーネルモジュール内のプロセスのプロセス記述子へのポインタを取得することは可能ですか?可能であれば、plsはどのように投稿しますか?プロセスによって開かれたすべてのファイルと、各ファイル記述子のそれらのオフセット値を見つける必要があります。

4

4 に答える 4

1

プロセス記述子へのポインターを取得したことがわかりました...関数はlinux/sched.hで宣言されています

struct task_struct find_task_by_pid(pid_t pid)..このプロセス記述子を使用して、ファイル記述子とそのオフセットを追跡できると思います...サポートしてくれてありがとう

于 2009-04-16T18:02:46.577 に答える
1

まあ、カーネルモジュールからそれを取得する方法はわかりませんが、通常のコードから取得する方法はたくさんあります...特に効率的なものではありません。lsof や他の同様のユーティリティが行う方法から始めて、/proc/$pid/fd を見ていきます。

于 2009-04-16T17:32:00.143 に答える
1

proc ファイル システムをスキャンして、開いているファイル記述子を持つプロセスを探します。ただし、開いているファイル ハンドルへのオフセットを検出することはできません。

于 2009-04-16T17:34:45.863 に答える
0

何を達成しようとしているのかわかりません。通常、すべては特定のプロセスIDのコンテキストでのみ実行されます。これは、「現在の」グローバルを介して常に利用できます。任意のプロセス記述子を検索する場合は、find_task_by_pidがおそらく必要なものです。すべてのプロセス情報はtask_structから流れます。

于 2009-04-18T09:36:30.160 に答える