«Лучшая практика» (как я ее вижу) для атомарного создания нового файла - это открыть временный файл (используя tmpfile () ), а затем переместить файл в его окончательное местоположение.
Однако это не будет хорошо работать, если временный файл находится в другой точке монтирования, так как это приведет к постепенному наращиванию файла и, кроме того, к ненужным затратам на ввод-вывод.
Другим вариантом является создание временного файла в том же каталоге, что и конечный пункт назначения, но недостатком является создание необычного файла для пользователя (такие приложения, как MS Word и ViM, делают это, но я также считаю это плохим поведение).
Существует ли метод, аналогичный tmpfile (), который позволит мне указать точку монтирования? Я понимаю, что это, вероятно, не существует встроенного в PHP, поэтому также допустима функция Posix / C или вызов оболочки.