原子地創建一個新文件的'最佳實踐'(就像我看到的那樣)是打開一個臨時文件(使用tmpfile()),然後將文件移動到最終位置。原子創建文件的最佳方式
但是,如果臨時文件位於不同的掛載點上,這將無法正常工作,因爲這會導致文件逐漸累積並導致不必要的IO開銷。
另一種選擇是在與最終目的地相同的目錄中創建一個臨時文件,但這有一個缺點,即爲用戶創建一個不尋常的文件(像MS Word和ViM這樣的應用程序可以這樣做,但我也考慮過不良行爲)。
是否有類似tmpfile()的方法可以指定掛載點?我意識到這可能不存在內置的PHP,所以Posix/C函數或shell調用也是可以接受的。
Windows有掛載點,至少在NTFS上。 – Thorarin 2009-08-24 16:40:23
這實際上正是我的第二選擇,我最好避免這樣做。 – Evert 2009-08-24 16:56:51
@Thorarin,你可以給我更多關於這方面的信息。謝謝。 – drAlberT 2009-08-24 17:22:05