我需要将文件上传到我的服务器。我使用ASIHTTPRequest
来完成这项工作。但是,如果我只是将上传作业添加到ASINetworkQueue
并立即删除源文件,则上传作业仍然可以成功完成。
我认为这项工作会失败,因为我删除了该文件。有人可以解释它仍然成功的原因,即使该文件被删除了吗?
答案 0 :(得分:0)
当您在进程仍在写入时删除大型日志文件时,您会发现这个问题,期望恢复一些磁盘空间。
UNIX系统倾向于将文件的目录条目与文件的实际数据分开。
数据消耗空间,这就是为什么你可以在UNIX中拥有硬链接的原因,许多目录条目指向相同的文件内容。
在最后一个进程关闭文件之前,不会删除文件的实际数据,这几乎可以肯定是导致文件传输继续的原因。
删除文件只会删除目录条目。数据仍然是因为文件传输程序打开了它。
一旦关闭,数据也将被删除。