1

我需要将文件上传到我的服务器。我用ASIHTTPRequest来完成这项工作。但是如果我只是将上传作业添加到ASINetworkQueue并立即删除源文件,上传作业仍然可以成功完成。

我认为这项工作会失败,因为我删除了文件。有人可以解释它仍然成功的原因,即使文件已被删除?

4

1 回答 1

0

当您删除一个大型日志文件而一个进程仍在写入它时,您会遇到同样的问题,期望恢复一些磁盘空间。

UNIX 系统倾向于将文件的目录条目与文件的实际数据分开。

消耗空间的是数据,这就是为什么您可以在 UNIX 中拥有硬链接,许多目录条目指向相同的文件内容。

文件的实际数据在最后一个进程关闭之前不会被删除,这几乎肯定是导致文件传输继续的原因。

删除文件只会删除目录条目。数据仍然是,因为文件传输程序已将其打开。

一旦关闭,数据也将被删除。

于 2015-04-17T05:18:19.680 回答