Введение

Тип компьютерного файла

Временный файл — это файл, созданный для временного хранения информации, либо для промежуточного использования программой, либо для переноса в постоянный файл по завершении работы. Компьютерные программы могут создавать его для различных целей, например, когда программе недостаточно памяти для выполнения задач, когда программа обрабатывает данные, превышающие адресное пространство архитектуры, или в качестве простейшего способа межпроцессного взаимодействия.

Помощная память

В современных операционных системах используется виртуальная память, однако программы, работающие с большими объемами данных (например, при редактировании видео), могут нуждаться в создании временных файлов.

Межпроцессная связь

Большинство операционных систем предоставляют примитивы, такие как каналы, сокеты или общая память, для передачи данных между программами, но зачастую самый простой способ (особенно для программ, придерживающихся философии Unix) — записать данные во временный файл и уведомить принимающую программу о расположении этого временного файла.

Создание

Операционные системы и языки программирования обычно предоставляют функции для получения уникальных временных имен файлов. В системах POSIX временные файлы можно безопасно создавать с помощью функций `mkstemp` или библиотечных функций. Некоторые системы предоставляют устаревшую программу POSIX (теперь удалённую). Эти файлы обычно располагаются в стандартном каталоге временных файлов: `/tmp` в системах Unix или `%TEMP%` (который специфичен для конкретной учётной записи) в системах Windows. Временный файл, созданный с помощью `mkstemp`, удаляется автоматически при завершении программы или закрытии файла. Для создания временного имени файла, которое сохранится после завершения работы создавшей его программы, можно использовать `mkstemp` (POSIX) или `GetTempFileName()` (Windows).

Проблемы

Некоторые программы создают временные файлы, а затем не удаляют их, оставляя их на диске. Это может произойти из-за сбоя программы или из-за того, что разработчик просто забыл добавить код для удаления этих файлов после завершения работы программы. Со временем такие оставленные временные файлы могут накапливаться и занимать значительное место на диске. Временные файлы можно удалять вручную. Операционные системы могут очищать временную папку при перезагрузке, а также использовать специальные скрипты для удаления файлов, которые не использовались в течение определенного времени. Кроме того, файловые системы, работающие в оперативной памяти, такие как tmpfs, не сохраняют файлы после перезагрузки.