2010-12-05 8 views

答えて

3

statまたはfstatを使用してください。それらが記入したstat構造には、inode番号が含まれています。 2つが接続されている場合、st_inoフィールドは同じ値にする必要があります。

iノード番号はデバイス固有のものであるため、デバイスID(st_dev)も確認する必要があります。

+6

iノード番号は、1つのデバイスでのみ一意です。あなたはまた、@thkala – camh

+0

@camhのおかげで概説されているデバイスをチェックする必要があります。 – terminus

2

stat()またはfstat()関数は、そのファイルへのハードリンクの数が記載されているst_nlinkフィールドを含む構造体を返します。ハードリンクは同じinodeを再利用する必要があるため、2つの異なるパスのinodeを比較することができると思います。

7

両方のパスにstat() or fstat()関数を使用します。返された構造体のst_devとst_inoの両方のフィールドが同一である場合、パスは同じファイルシステムオブジェクトを参照します。

EDIT:

注意あなたがst_devフィールドとst_inoのの両方をチェックする必要がありこと。さもなければ、ちょうど同じinode番号を持つ異なるファイルシステムの2つのファイルをマッチさせる危険性があります。あなたは2つのマウントポイントにstatを実行した場合、これを見ることができる場合があります。

$ stat//boot | grep Device 
Device: 903h/2307d Inode: 2   Links: 23 
Device: 902h/2306d Inode: 2   Links: 3 

あなたは出力に同じinode番号をはっきりと見ることができます。

0

また、それは、ファイルのための決定的なユニークなIDであるiノード番号を、一覧表示されます

$ ls -i 

を使用することができます。

関連する問題