unlink("cache/data.xml");
サーバーがそれを読み込んで訪問者に提供しているときに、これによりエラーが発生する可能性があると思います。
ファイルを安全に削除して、スクリプトが Web サーバーからの読み取りロックが解放されるまで待機し続け、ファイルの削除を続行する方法、またはそこでどのように機能するかを教えてください。
ありがとう
unlink("cache/data.xml");
サーバーがそれを読み込んで訪問者に提供しているときに、これによりエラーが発生する可能性があると思います。
ファイルを安全に削除して、スクリプトが Web サーバーからの読み取りロックが解放されるまで待機し続け、ファイルの削除を続行する方法、またはそこでどのように機能するかを教えてください。
ありがとう
これは、これが実行されている特定のシステムによって異なりますが、UNIXunlink
関数 (PHPunlink
関数が内部的に依存している可能性が非常に高い)の man ページには、次のように記載されています。
この
unlink()
関数は、path で指定されたリンクをそのディレクトリから削除し、リンクによって参照されたファイルのリンク数を減らします。その減少によってファイルのリンク数がゼロになり、そのファイルを開いているプロセスがない場合、そのファイルに関連付けられているすべてのリソースが再利用されます。最後のリンクが削除されたときに 1 つ以上のプロセスがファイルを開いている場合、リンクは削除されますが、ファイルへのすべての参照が閉じられるまで、ファイルの削除は延期されます。
つまり、ファイルが削除されている間でも、ファイルを読み取るプロセスは引き続き実行できます。