4

iノード番号の定義に驚かされます。

iノードは、UFSやext3などの従来のUnixスタイルのファイルシステム上のデータ構造です。iノードは、通常のファイル、ディレクトリ、またはその他のファイルシステムオブジェクトに関する基本情報を格納します。ソース

したがって、すべてのiノード番号には論理的な順序が必要です。正面の数字から直接結論を出すことができますか?

4214970 0 drwx------  102 user  staff   3.4K Feb  2 22:34 new
5728909 0 drwx------    3 user  staff   102B Mar 25 22:11 new_new
5415906 0 drwx------   15 user  staff   510B Mar 19 02:28 stdout_TEST

そうでない場合、データ構造のおかげでどのようなことを知ることができますか?

4

2 に答える 2

7

iノード番号はiノードではありません。:)iノード番号はiノードの主キーと考えることができます。

iノード番号の決定方法はファイルシステムによって異なります。一部のファイルシステム(特に一部のFUSEファイルシステム)では、薄い空気からiノード番号を作成する場合もあります。また、ディスク上の場所に直接マップされる場合もあります。残念なことに、これはやや時代遅れの概念であり、最近の多くのファイルシステムでは、内部の位置情報を32ビットの数値に圧縮するのが困難です。

いずれにせよ、アプリケーションプログラマーとして、iノード番号を不透明な値として扱い、等式比較にのみ適している必要があります(iノード番号は再利用される可能性があるため、ファイルが削除されていないことが確実な場合のみ...)

于 2009-05-05T06:52:39.883 に答える
4

正面の数字から直接結論を出すことができますか?

必ずしも。iノードはリサイクルされます。

そうでない場合、データ構造のおかげでどのようなことを知ることができますか?

特定のファイルシステム( ext2やext3など)にstruct適切な定義を含むヘッダーファイルを確認します。/usr/include/linux/ext2_fs.h

于 2009-05-05T06:58:17.797 に答える