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