mktemp - создает уникальное временное имя файла
НАЗВАНИЕmktemp - создает уникальное временное имя файла
СИНТАКСИС
#include
char *mktemp(char *template);
ОПИСАНИЕ
Функция mktemp() создает уникальное временное имя файла по
шаблону template. Последние шесть символов template должны
быть XXXXXX, и именно они заменяются строкой, которая
делает имя файла уникальным. Так как она будет меняться,
то template не может быть строковой константой, а должна
быть определена как символьный массив.
ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ
Функция mktemp() возвращает NULL при ошибках (template не
заканчивается на XXXXXX) или template в другом случае.
Если работа завершена нормально, то последние шесть байтов
template будут изменены таким образом, что созданное имя
файла будет уникальным (ранее не существовавшим). Если
вызов был неуспешным, то template будет пустой строкой.
КОДЫ ОШИБОК
EINVAL - последние шесть символов template не являлись
XXXXXX.
СООТВЕТСТВИЕ СТАНДАРТАМ
BSD 4.3. POSIX требует tmpnam(3).
ЗАМЕЧАНИЕ
Прототип данной функции находится в (для libc4,
libc5, glibc1); glibc2 соответствует "Single Unix Specifi-
cation" и имеет прототип в .
НАЙДЕННЫЕ ОШИБКИ
Никогда не используйте mktemp(). Некоторые реализации
следуют BSD 4.3 и заменяют XXXXXX на идентификатор
текущего процесса и один символ, так что Вы можете в
результате получить максимум 26 разных имен. Так как, с
одной стороны, имена легко угадываемы, а с другой стороны,
возможно "состязание" между проверкой на существование
имени файла и открытием файла при каждом использовании
mktemp(), то безопасность системы будет под угрозой.
Этого можно избежать при использовании функции mkstemp(3).