Временный файл: различия между версиями

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
[отпатрулированная версия][отпатрулированная версия]
Содержимое удалено Содержимое добавлено
Строка 18: Строка 18:
: Использовалось в утилитах запуска [[Doom (игра, 1993)|Doom]]: [[командная строка]] [[DOS]] ограничивалась 128 байтами, но в Doom имелся параметр <code>@filename.ext</code>, позволявший обойти это ограничение.
: Использовалось в утилитах запуска [[Doom (игра, 1993)|Doom]]: [[командная строка]] [[DOS]] ограничивалась 128 байтами, но в Doom имелся параметр <code>@filename.ext</code>, позволявший обойти это ограничение.


; Нужно любой ценой сохранить имеющийся файл в случае аппаратно-программного сбоя : Например, перезаписывая файл, программа может создать новый с временным именем, и если создание удастся, удалить старый и переименовать новый.
; Нужно любой ценой сохранить имеющийся файл при аппаратно-программном сбое : Например, перезаписывая файл, программа может создать новый с временным именем, и если создание удастся, удалить старый и переименовать новый.
: Во [[встраиваемая СУБД|встраиваемых СУБД]] добиваются требований [[ACID]] именно через временные файлы.
: Во [[встраиваемая СУБД|встраиваемых СУБД]] добиваются требований [[ACID]] именно через временные файлы.



Версия от 21:02, 1 июня 2020

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

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

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

Назначение

Дополнительная память
Все современные ОС используют файл подкачки.
Программы, работающие с большим количеством данных — например, видеоредакторы — могут создавать множество временных файлов.
Сохранение результатов компиляций, расчётов, загрузок и т. д., чтобы не делать дважды
Так работает цепочка сборки любого компилятора. Пересобирается только то, чей исходный код был изменён.
Так работает дисковый кэш браузеров.
Межпроцессная коммуникация
Самый простой способ получить данные из другой программы — потребовать от неё записать их в файл. Такая коммуникация может проводиться даже между разными компьютерами — если, конечно, они располагают общим сетевым диском. Работает даже на интернет-дисках вроде Dropbox, которые являются не особой файловой системой, а резидентной программой с пользовательскими правами, которая синхронизирует файлы между компьютерами. Так, Microsoft Office может сообщать своим копиям с других компьютеров, кто занял файл.
Архитектура программной системы требует именно файл
Библиотека cURL не позволяет генерировать сертификаты сайтов в памяти — только в файле.
Часто временными файлами пользуются командные файлы, цепочки сборки в компиляторах.
Использовалось в утилитах запуска Doom: командная строка DOS ограничивалась 128 байтами, но в Doom имелся параметр @filename.ext, позволявший обойти это ограничение.
Нужно любой ценой сохранить имеющийся файл при аппаратно-программном сбое
Например, перезаписывая файл, программа может создать новый с временным именем, и если создание удастся, удалить старый и переименовать новый.
Во встраиваемых СУБД добиваются требований ACID именно через временные файлы.
Запуск файлов — как программ, так и по ассоциации
Используется браузерами, если нужно запустить загружаемый файл.
Такая система распространена для драйверов: самоизвлекающийся архив распаковывает инсталлятор драйвера, а затем запускает его.
В таком виде удобно хранить кэш обновлений ПО
Комбинация приведённых причин: обновления зачастую велики; их нужно докачивать с того места, откуда прервали; иногда служба обновления ПО срабатывает при запуске программы или загрузке/завершении ОС, и проще всего передать ей информацию именно через файлы; иногда (браузер Vivaldi, текстовый редактор Notepad++) обновление — программа, которую нужно запустить.

Местоположение

Временные файлы ОС Windows можно найти в следующих каталогах:

%SystemRoot%\Temp

%SystemRoot% — каталог, в который установлена Windows.

%HomeDrive%%HomePath%\Temp

%HomeDrive% — по умолчанию C: %HomePath% — \Documents and Settings\<имя пользователя> (по умолчанию в Windows XP).

то же что и предыдущее (при настройках по умолчанию):

%TMP%

%TEMP%

Кроме того временные файлы могут находиться в текущем каталоге.

Или, в Unix-подобных операционных системах,

/tmp

или

~/tmp

(где ~ — ссылка на домашний каталог пользователя).