2

一部のプログラミング言語には、強く参照されているオブジェクトと弱く参照されているオブジェクトを区別する機能があり、すべての強い参照が消えた後、弱いオブジェクトがガベージコレクションの候補になります。

ファイルシステムのハードリンクにも同様の概念がありますか?理論上のAPIは次のとおりです。

 $ touch A
 $ ln --weak A A_hardlink   # create a 'weakly referenced' hard link
 $ rm A
 $ stat A_hardlink          # no such file or directory

シンボリックリンクはこれを提供しますが、Aのシンボリックリンクは(基になるファイルがなくなっても)ディスクに表示されます。さらに、同じiノードを直接指すことを利用したいと思います(移動の追跡、名前の変更メインファイルなど)。実際にこれをサポートしているファイルシステム、またはそのようなものはありますか?

4

1 に答える 1

3

いいえ(この機能を備えた独自のファイルシステムを作成しない限り)。私が知っているすべてのファイルシステムのディレクトリエントリからiノードへのすべてのリンクは強力なリンクです。ほとんどのファイルシステムに弱いリンクを実装するのは難しいでしょう。なぜなら、iノードはディレクトリエントリがそれを指している場所を「記憶」していないからです。それでも、強いリンクをすべて削除するには、それらすべてを見つける必要があります。 iノードに消えました。

于 2012-09-09T15:06:28.390 に答える