2010-11-20 6 views
0

ディレクトリとファイルがファイルシステムレベルで互いにどのように関係しているか、つまりFFSやEXTなどの* nixファイルシステムを理解しようとしています。inodesがディレクトリを処理する

私は概念的に、inodeにメタデータとファイルの場所へのポインタがあることを理解していますが、どのようにディレクトリ情報を保持し、どのファイルがどのディレクトリにあるのかを知っていますか?

答えて

2

を読むことによって開始される可能性があります。しかし、ファイルの内容の場所(ファイルではない)へのポインタは含まれていませんが、ディレクトリのファイル/サブディレクトリのinodeへのポインタです(基本的にはファイルですが、フラグ/フラグは特別です) 。さらに、それは親ディレクトリへのポインタとそれ自身を含んでいます。

がはるかにツリーをトラバースするときのように、ディレクトリ構造が単純に横断される特定のファイルに到達するには - ファイルのフルパスを見つけるために、擬似コードは以下のようになります。

parts = [] 
inode = inode_of(file); 
parts.add(inode.name); 
while(inode.parent): 
    parts.add(inode.parent.name) 
    inode = inode.parent 
path = parts.reverse.join('/') 
0

ディレクトリだけです特別な種類のファイル。そのinodeにはmodeフィールドにS_IFDIRビットが設定されています。その内容は、ファイル名とiノード番号を保持するデータ構造です。