Временный файл: различия между версиями
[отпатрулированная версия] | [отпатрулированная версия] |
Mercury (обсуждение | вклад) |
Mercury (обсуждение | вклад) |
||
(не показано 13 промежуточных версий 2 участников) | |||
Строка 10: | Строка 10: | ||
; Сохранение результатов компиляций, расчётов, загрузок и т. д., чтобы не делать дважды : Так работает цепочка сборки любого компилятора. Пересобирается только то, чей исходный код был изменён. |
; Сохранение результатов компиляций, расчётов, загрузок и т. д., чтобы не делать дважды : Так работает цепочка сборки любого компилятора. Пересобирается только то, чей исходный код был изменён. |
||
: Так работает дисковый кэш [[браузер]]ов. |
|||
; [[Межпроцессная коммуникация]] : Самый простой способ получить данные из другой программы — потребовать от неё записать их в файл. Такая коммуникация может проводиться даже между разными компьютерами — если, конечно, они располагают общим [[сетевой диск|сетевым диском]]. Работает даже на интернет-дисках вроде [[Dropbox]], которые являются не особой [[файловая система|файловой системой]], а резидентной программой с пользовательскими правами, которая синхронизирует файлы между компьютерами. Так, [[Microsoft Office]] может сообщать своим копиям с других компьютеров, кто занял файл. |
; [[Межпроцессная коммуникация]] : Самый простой способ получить данные из другой программы — потребовать от неё записать их в файл. Такая коммуникация может проводиться даже между разными компьютерами — если, конечно, они располагают общим [[сетевой диск|сетевым диском]]. Работает даже на [[облачное хранилище|интернет-дисках]] вроде [[Dropbox]], которые являются не особой [[файловая система|файловой системой]], а [[резидентная программа|резидентной программой]] с пользовательскими правами, которая синхронизирует файлы между компьютерами. Так, [[Microsoft Office]] может сообщать своим копиям с других компьютеров, кто занял файл. |
||
; Архитектура программной системы требует именно файл : Библиотека [[cURL]] не позволяет генерировать сертификаты сайтов в памяти — только в файле. |
; Архитектура программной системы требует именно файл : Библиотека [[cURL]] не позволяет генерировать сертификаты сайтов в памяти — только в файле. |
||
Строка 17: | Строка 18: | ||
: Использовалось в утилитах запуска [[Doom (игра, 1993)|Doom]]: [[командная строка]] [[DOS]] ограничивалась 128 байтами, но в Doom имелся параметр <code>@filename.ext</code>, позволявший обойти это ограничение. |
: Использовалось в утилитах запуска [[Doom (игра, 1993)|Doom]]: [[командная строка]] [[DOS]] ограничивалась 128 байтами, но в Doom имелся параметр <code>@filename.ext</code>, позволявший обойти это ограничение. |
||
; Нужно любой ценой сохранить |
; Нужно любой ценой сохранить данные при аппаратно-программном сбое : Например, перезаписывая файл, программа может создать новый с временным именем, и если создание удастся, удалить старый и переименовать новый. |
||
: Творческие программы ([[Corel Draw]]) могут автоматически сохранять файлы под временными именами, чтобы при сбое вернуться к подобной копии. |
|||
: Во [[встраиваемая СУБД|встраиваемых СУБД]] добиваются требований [[ACID]] именно через временные файлы. |
: Во [[встраиваемая СУБД|встраиваемых СУБД]] добиваются требований [[ACID]] именно через временные файлы. |
||
; Запуск файлов — как программ, так и по [[ассоциация файлов|ассоциации]] : Используется [[браузер]]ами, если нужно запустить |
; Запуск файлов — как [[исполняемый файл|программ]], так и по [[ассоциация файлов|ассоциации]] : Используется [[браузер]]ами, если сам браузер не умеет просматривать файл и нужно запустить внешнюю программу. |
||
: Такая система распространена для [[драйвер]]ов: [[самоизвлекающийся архив]] распаковывает инсталлятор драйвера, а затем запускает его. |
: Такая система распространена для [[драйвер]]ов: для распространения программ через интернет удобен один большой исполняемый файл, а именно для драйвера годится не каждый генератор инсталляторов. Так что [[самоизвлекающийся архив]] распаковывает собранный в нужной программе инсталлятор драйвера, а затем запускает его. |
||
; В таком виде удобно хранить кэш обновлений ПО : Комбинация приведённых причин |
; В таком виде удобно хранить кэш обновлений ПО : Комбинация приведённых причин. Обновления зачастую велики. Их нужно докачивать с того места, откуда прервали. Иногда служба обновления ПО срабатывает при запуске программы или загрузке/завершении ОС, и проще всего передать ей информацию именно через файлы. Иногда (браузер [[Vivaldi]], текстовый редактор [[Notepad++]]) обновление — программа, которую нужно запустить. |
||
== Местоположение == |
== Местоположение == |
||
Строка 46: | Строка 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
(где ~ — ссылка на домашний каталог пользователя).