← На главную

Наследие от CP/M до Windows: борьба TMP против TEMP

02.05.2026 08:23 · hackernews

В переменнойной среде вашего компьютера обычно фигурируют два параметра, указывающих путь к временным файлам: TMP и TEMP. Складывается впечатление, что между ними идёт вечная война за внимание разработчиков, но всё дело в истории. Корень проблемы уходит в 1973 год и операционную систему CP/M. У неё вообще не было понятия переменных окружения, поэтому программам приходилось хардкодить путь к дискам прямо в код или редактировать байты исполняемых файлов. Переход к MS-DOS в 1981 году, основанному на философии CP/M, не сразу изменил правила игры. Первые версии DOS просто переносили старые программы, которые не знали о существовании переменных, и долгое время игнорировали настройки TEMP или TMP.

История пошла по другому пути, когда в MS-DOS 2.0 появилась поддержка переадресации вывода одного процесса в ввод другого. Поскольку система была однопоточной, этот процесс требовал создания промежуточного файла во временной папке. Авторы ОС выбрали для этой цели именно переменную TEMP. Тем не менее, не все приложения подхватили этот тренд. Многие старые утилиты, такие как DISKCOPY и EDIT, проверяли TEMP в первую очередь, пока COMMAND.COM отдавал приоритет переменной TEMP. Ситуация усугубилась при переходе к Windows, где функция GetTempFileName ушла в сторону переменной TMP.

В итоге получается разделение: современные программы под Windows чаще используют TMP, так как опираются на стандартную функцию API, а старые или специфичные приложения могут тяготеть к TEMP. В настройках системы оба параметра остаются, создавая ощущение конкуренции между TMP и TEMP, похожее на борьбу Adidas против Puma, только в мире программной разработки. Выбор конкретного пути к временным файлам всё ещё зависит от того, кто написал программу и какой подход он решил применить.

Читать оригинал →