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

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
[отпатрулированная версия][отпатрулированная версия]
Содержимое удалено Содержимое добавлено
 
(не показаны 24 промежуточные версии 2 участников)
Строка 10: Строка 10:


; Сохранение результатов компиляций, расчётов, загрузок и т. д., чтобы не делать дважды : Так работает цепочка сборки любого компилятора. Пересобирается только то, чей исходный код был изменён.
; Сохранение результатов компиляций, расчётов, загрузок и т. д., чтобы не делать дважды : Так работает цепочка сборки любого компилятора. Пересобирается только то, чей исходный код был изменён.
: Так работает дисковый кэш [[браузер]]ов.
: Применительно к службам обновления ПО — если из программы выйти и снова зайти, она будет докачивать обновление с того места, где прервали.


; [[Межпроцессная коммуникация]] : Самый простой способ получить данные из другой программы — потребовать от неё записать их в файл. Такая коммуникация может проводиться даже между разными компьютерами — если, конечно, они располагают общим [[сетевой диск|сетевым диском]]. Так, [[Microsoft Office]] может сообщать своим копиям с других компьютеров, кто занял файл.
; [[Межпроцессная коммуникация]] : Самый простой способ получить данные из другой программы — потребовать от неё записать их в файл. Такая коммуникация может проводиться даже между разными компьютерами — если, конечно, они располагают общим [[сетевой диск|сетевым диском]]. Работает даже на [[облачное хранилище|интернет-дисках]] вроде [[Dropbox]], которые являются не особой [[файловая система|файловой системой]], а [[резидентная программа|резидентной программой]] с пользовательскими правами, которая синхронизирует файлы между компьютерами. Так, [[Microsoft Office]] может сообщать своим копиям с других компьютеров, кто занял файл.
: Зачастую служба обновления ПО — отдельная программа, и проще всего передать ей информацию именно через файлы.


; Архитектура программной системы требует именно файл : Библиотека [[cURL]] не позволяет генерировать сертификаты сайтов в памяти — только в файле.
; Архитектура программной системы требует именно файл : Библиотека [[cURL]] не позволяет генерировать сертификаты сайтов в памяти — только в файле.
: Часто временными файлами пользуются [[командный файл|командные файлы]], цепочки сборки в компиляторах.
: Часто временными файлами пользуются [[командный файл|командные файлы]], цепочки сборки в компиляторах.
: Использовалось в утилитах запуска [[Doom (игра, 1993)|Doom]]: [[командная строка]] [[DOS]] ограничивалась 128 байтами, но в Doom имелся параметр <code>@filename.ext</code>, позволявший обойти это ограничение.


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


; Запуск файлов — как [[исполняемый файл|программ]], так и по [[ассоциация файлов|ассоциации]] : Используется [[браузер]]ами, если сам браузер не умеет просматривать файл и нужно запустить внешнюю программу.
; Распаковка и вызов программ : Такая система распространена для [[драйвер]]ов: [[самоизвлекающийся архив]] распаковывает инсталлятор драйвера, а затем запускает его.
: Такая система распространена для [[драйвер]]ов: для распространения программ через интернет удобен один большой исполняемый файл, а именно для драйвера годится не каждый генератор инсталляторов. Так что [[самоизвлекающийся архив]] распаковывает собранный в нужной программе инсталлятор драйвера, а затем запускает его.
: Сходным образом действует служба обновления браузера [[Vivaldi]].

; В таком виде удобно хранить кэш обновлений ПО : Комбинация приведённых причин. Обновления зачастую велики. Их нужно докачивать с того места, откуда прервали. Иногда служба обновления ПО срабатывает при запуске программы или загрузке/завершении ОС, и проще всего передать ей информацию именно через файлы. Иногда (браузер [[Vivaldi]], текстовый редактор [[Notepad++]]) обновление — программа, которую нужно запустить.


== Местоположение ==
== Местоположение ==
Строка 45: Строка 48:


[[Категория:Программное обеспечение]]
[[Категория:Программное обеспечение]]
[[Категория:Файлы]]

Текущая версия от 02:29, 28 января 2024

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

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

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

Назначение

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

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

[править | править код]

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

%SystemRoot%\Temp

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

%HomeDrive%%HomePath%\Temp

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

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

%TMP%

%TEMP%

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

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

/tmp

или

~/tmp

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