サーバーにファイルをアップロードする必要があります。を使ってASIHTTPRequest
この仕事をしています。しかし、アップロード ジョブを に追加してASINetworkQueue
すぐにソース ファイルを削除しても、アップロード ジョブは正常に完了します。
ファイルを削除したので、ジョブが失敗すると思いました。ファイルが削除されたにもかかわらず、それがまだ成功する理由を誰かが説明できますか?
サーバーにファイルをアップロードする必要があります。を使ってASIHTTPRequest
この仕事をしています。しかし、アップロード ジョブを に追加してASINetworkQueue
すぐにソース ファイルを削除しても、アップロード ジョブは正常に完了します。
ファイルを削除したので、ジョブが失敗すると思いました。ファイルが削除されたにもかかわらず、それがまだ成功する理由を誰かが説明できますか?
これは、プロセスがまだログ ファイルに書き込みを行っている間に大きなログ ファイルを削除し、ディスク領域をいくらか回復することを期待した場合と同じ問題です。
UNIX システムでは、ファイルのディレクトリ エントリをファイルの実際のデータから分離する傾向があります。
スペースを消費するのはデータであるため、UNIX で多くのディレクトリ エントリが同じファイル コンテンツを指しているハード リンクを使用できるのはそのためです。
ファイルの実際のデータは、最後のプロセスがファイルを閉じるまで削除されません。これが、ファイル転送を継続させる原因になっていることはほぼ確実です。
ファイルを削除すると、ディレクトリ エントリだけが削除されます。ファイル転送プログラムが開いているため、データはまだです。
閉じられると、データも削除されます。