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>.