ファイルへの開いている参照がある場合、その参照は、たとえファイル自体が削除されたり名前が変更されたりしても、その名前が後で新しいファイルによって再利用されたとしても、参照が存続する限り同じファイルを参照し続けます。それは削除されます。参照は、ファイル記述子またはメモリ マッピングにすることができます。これは POSIX の一部であり、使用されているファイルシステムの種類に関係なく、真実です (またはそうあるべきです!)。
つまり、NFS ファイルシステムでファイルを開いてメモリにマップすると、マップを解除しない限り、他のプロセス (または同じプロセス) が削除したとしても、そのメモリ マッピングを引き続き使用できます。ファイルを同じ名前の新しいファイルに置き換えます。
NFS プロトコルがステートレスであることは事実であるため、実装では、このケースが正しく処理されるように特別な手順を実行する必要があります。それがどのように行われたかを見てから非常に長い時間が経ちましたが、最後に (Solaris で) 行ったときは.nfsXXXXX
、リンク数がゼロになった場合にファイルを削除するのではなく、ファイルの名前を特別な隠し名前 ( ) に変更することによって行われましたそれらへのオープンな参照がまだありました。とにかく、実装でどのようなトリックが使用されていても、ファイルシステムのユーザーとして心配する必要はありません。