看一段程序吧:
<?php
file_put_contents(‘a’,‘A’);
$fp = fopen(‘a’,‘w’);
rename(‘a’,‘b’);
fwrite($fp,‘B’);
echo file_get_contents(‘a’);
fclose($fp);
exit;
?>
结论: 文件a被打开时,重命名为b,此时想资源描述符里写的内容实际写到了b文件里了。
另一种情况:
1. a进程打开文件file1
2. b进程删除file1
3. a进程向file1里写东西, 这时不会报错
4. a进程退出,这时文件被真正删除