tempfile - создать временный файл безопасным способом
НАЗВАНИЕ
tempfile − создать временный файл безопасным способом
ОБЗОР
tempfile [−d КАТАЛОГ] [−p СТРОКА] [−s СТРОКА] [−m РЕЖИМ] [−n ФАЙЛ] [−−directory=КАТАЛОГ] [−−prefix=СТРОКА]
[−−suffix=СТРОКА] [−−mode=РЕЖИМ] [−−name=ФАЙЛ] [−−help] [−−version]
ОПИСАНИЕ
tempfile создаёт временный файл безопасным способом. Программа использует tempnam(3) для выбора имени
и открытия файла в режиме O_RDWR | O_CREAT | O_EXCL. Имя файла выводится на стандартный поток вывода. Обратитесь к tempnam(3) за информациях об этапах
выбора каталога.
Каталог, в котором может быть создан файл выбирается следующим в следующем порядке (но за авторитетной информацией
лучше обращайтесь к tempnam(3)):
a)
В случае если переменная окружения TMPDIR существует и содержит имя каталога, используется соответствующий каталог.
b)
Иначе, если передан соответствующий аргумент опции −−directory, то используется он.
c)
Иначе используется P_tmpdir (который определён в <stdio.h>).
d)
Наконец, можно воспользоваться каталогом (/tmp), определённым для данной реализации.
ОПЦИИ
−d, −−directory КАТАЛОГ
Поместить файл в КАТАЛОГЕ.
−m, −−mode РЕЖИМ
Открыть файл в указанном РЕЖИМЕ, вместо 0600.
−n, −−name ФАЙЛ
Использовать ФАЙЛ в качестве имени файла, не вызывая tempnam(3). Если задана эта опция, то опции −d, −p и −s будут
проигнорированы.
−p, −−prefix СТРОКА
Использовать до пяти символов СТРОКИ для создания имени файла.
−s, −−suffix СТРОКА
Создать имя файла со СТРОКОЙ в качестве расширения.
−−help
Вывести на стандартный поток вывода сообщение о способе использования и успешно завершить работу.
−−version
Вывести на стандартный поток вывода инфорамцию о версии и успешно завершить работу.
ВОЗВРАЩАЕМЫЕ ЗНАЧЕНИЯ
Код завершения 0 означает, что временный файл был создан успешно. Любой другой код завершения свидетельствует об
ошибке.
НЕИСПРАВНОСТИ
Эксклюзивное создание файлов не гарантируется, если файл создаётся на разделе NFS. tempfile не может создавать
временные каталоги. tempfile устарел, а вместо него нужно использовать mktemp(1).
ПРИМЕР
#!/bin/sh
#[...]
t=$(tempfile) || exit
trap "rm −f −− ’$t’" EXIT
#[...]
rm −f −− "$t"
trap − EXIT
exit
СМОТРИ ТАКЖЕ
tempnam(3), mktemp(1)
АВТОР ПЕРЕВОДА
Перевод на русский язык выполнил Владимир Ступин <vladimir@stupin.su>.