6

Linuxカーネルモジュール(つまり、カーネル空間で動作している)には、ファイルのパスがあります。

そのファイルのiノードを取得するために使用できる関数。具体的には、ファイルのiノードを指す「inode*」を取得する必要があります。

4

3 に答える 3

5

ファイルを開く必要はありません。char *nameに変換されるカーネルで利用可能なルックアップ関数がありますstruct nameidatapath_lookupを参照してください。

また、パス解決アルゴリズムがどのように機能するかを確認することもできます

于 2009-11-17T04:49:47.637 に答える
1

関数を使用することはできますが、filp_open関数のコメントに記載されているように、カーネルモジュールでファイルを開くことはあなたがしたいことではありません。

これがあなたのパスのを返す関数です。struct fileそこからiノードに行くことができると思います

ボーナス:これはあなたが意図していることではないかもしれませんが、カーネルからのファイルの読み取り/書き込みと、なぜそれをしたくないのかについての記事があります。

于 2009-11-16T15:53:43.230 に答える
1

カーネルでの私の経験に基づいて、途中の関数ではなく、常に path_lookup のようなトップ レベルの関数を使用することをお勧めします。

于 2009-11-20T21:49:03.453 に答える