.TMP не имеет программного значения в Windows, расширение обычно не регистрируется. Однако для временных файлов существует общее правило иметь это расширение, чтобы пользователи знали, что эти файлы безопасно удалить.
DOS и старые версии Windows не поддерживают автоматическое удаление файлов, когда закрывается последний дескриптор, поэтому в случае сбоя приложения оно не сможет удалить свои временные файлы.
PHP, вероятно, использует функцию GetTempFileName
, которая автоматически добавляет это расширение для вас. Эта функция заботится о создании уникального имени файла для вас.
На самом деле есть способ пометить временные файлы в Windows, но эта функция на самом деле не доступна конечному пользователю. Файлы могут быть помечены атрибутом FILE_ATTRIBUTE_TEMPORARY
. Это говорит Windows не записывать содержимое на диск, если это не требуется диспетчеру памяти во время подкачки.
У меня нет ссылки на каноническую документацию, в которой говорится, что все файлы .TMP являются временными файлами, это старая история и сделано по соглашению.
В дополнение к функции GetTempFileName
, использующей это расширение, KB 92635 говорит:
На жестком диске может появиться несколько файлов в разных каталогах, начиная с символа тильды (~) и заканчивая расширением .TMP. Это могут быть временные файлы, созданные Windows, которые остаются на жестком диске из-за нерегулярного выхода из сеанса Windows.
В обычных условиях эти файлы закрываются и удаляются Windows при выходе из сеанса Windows. Однако если вы выйдете из Windows нерегулярно (например, перезагрузите компьютер или выключите его во время активного сеанса Windows), файлы не будут закрыты или удалены.
...
Чтобы удалить временный файл, выполните следующие действия:
...
Удалить все существующие файлы .TMP. Убедитесь, что Windows не работает во время удаления этих файлов. Некоторые из этих файлов .TMP могут быть файлами, которые использует Windows.
Этот документ предназначен для Windows 2 и 3. Префикс ~ является необязательным и используется в сокращенном названии совместимости для Windows 95 и более поздних версий.