まだ開いていないファイルのiノード番号を取得する方法はありますか?AC機能の中からやりたい
よろしく、リピカ
stat(2) (ファイルパスを使用)を使用して、st_inoフィールドを確認します。電話をかけてから情報を操作するまでの間に、誰かがファイルを移動または削除する可能性があることに注意してstat
ください。
基本的に、答えはこの質問にあります。
Unixでディレクトリをファイルとして読み取るにはどうすればよいですか?
ファイルエントリを含むディレクトリを読み取る必要があります。そのエントリにはiノード番号が含まれています。
ファイルへのパスのすべての要素に対するアクセス許可を非常に厳密に制御できない限り、実行しようとしていることはほぼ間違いなく間違っています。パス名によるファイルへのアクセスを含む2つの操作の間には、競合状態があります。つまり、取得したiノード番号は、それを返す呼び出し(stat
または)が戻る前でも正しくない可能性があります。readdir
ファイルを開いてみませんか?