Как найти каталог temp в Linux? Я пишу нейтральную платформу С++, которая возвращает каталог temp. В Mac и Windows есть API, который возвращает эти результаты. В Linux я в тупике.
Как найти каталог temp в Linux?
Ответ 1
Проверьте следующие переменные:
- Переменная среды
TMPDIR
- Значение макроса
P_tmpdir
Если все не удается, попробуйте использовать каталог /tmp
.
Вы также можете использовать функцию tempnam
для создания уникального временного имени файла.
Ответ 2
Изменить: справедливая точка комментария. tmpnam
не является хорошим выбором в наши дни; Вместо этого используйте mktemp
/mkstemp
.
Исторический ответ: совместим с POSIX и используйте tmpnam (который даст вам полное имя файла во временном месте).
Ответ 3
Используйте значение переменной среды $TMPDIR, и если этого не существует, используйте /tmp
.
Ответ 4
Принимаемая последовательность, в частности, с точки зрения GNU:
- Проверьте переменную окружения TMPDIR (getenv ( "TMPDIR" )), только если программа не работает как SUID/SGID (issetugid() == 0)
- В противном случае используйте P_tmpdir, если он определен и действителен
- и, наконец, если они не работают, используйте _PATH_TMP, доступных из paths.h
Если вы добавляете расширение или модуль, проверьте, обеспечивает ли ядро функцию для этой цели. Например, PHP экспортирует php_get_temporary_directory() из основного/php_open_temporary_file.h.
Ответ 5
В стандарте c вы можете попробовать: P_tmpdir