unlink("cache/data.xml");
Run Code Online (Sandbox Code Playgroud)
我觉得,当服务器可能正在阅读并将其提供给访问者时,这可能会产生错误.
如何安全地删除文件,以便脚本将继续等待,直到从Web服务器读取锁定被释放,然后继续删除该文件或如何在那里工作?
谢谢
这将取决于运行的特定系统,但UNIX unlink函数的手册页(PHP unlink函数很可能依赖于内部)说明:
该
unlink()函数从其目录中删除path指定的链接,并减少链接引用的文件的链接计数.如果该减量将文件的链接数减少为零,并且没有进程使文件打开,则回收与该文件关联的所有资源.如果一个或多个进程在删除最后一个链接时打开文件,则会删除该链接,但会删除该文件,直到所有对它的引用都已关闭为止.
换句话说,即使在删除文件时,读取文件的过程也可以继续这样做.