Прототип функции tmpnam:
char * tmpnam( char * string );
Заголовочный файл
Название | Язык |
---|---|
stdio.h | С |
cstdio | С++ |
Описание
Функция tmpnam
создает имя для файла. Генерируется строка, содержащая имя файла, которое отличается от любого существующего имени файла.
Эта строка может быть использована для создания временных файлов без перезаписи любого другого существующего файла.
Если string
аргументом является нулевой указатель, то результирующая строка сохраняется во внутренний статический массив, который может быть доступен через возвращаемое значение. Содержание строки хранится до следующего вызова этой же функции.
Если string
аргумент не является нулевым указателем, то он должен указывать на массив размером, по крайней мере, L_tmpnam
байт, который будет заполнен, предлагаемым функцией tempname
, именем. L_tmpnam
является макро-константа, определенная в <cstdio>
.
Имя файла, возвращаемое этой функцией может быть использовано для создания регулярного файла, используя функцию fopen
. Файл, созданный таким образом, в отличие от того, который создан как временный файл, автоматически не удаляется, при закрытии. Чтобы удалить такой файл, вы должны вызвать функцию remove
.
Параметры:
- string
Указатель на массив символов, где сгенерированное имя будет храниться в виде строки. Размер этого массива должен составлять не менееL_tmpnam
символов. В качестве аргумента может быть передан нулевой указатель, в этом случае строка будет храниться во внутреннем статическом массиве, который можно получить с помощью возвращаемого значения.
Возвращаемое значение
Указатель на строку, содержащую предлагаемое имя для временного файла.
Если возвращаемая строка — не пустой указатель, возвращается string
.
Если функции не удается создать подходящее имя файла, она возвращает пустой указатель.
Пример: исходный код программы
// пример использования функции: tmpnam для создания имени для временного файла #include <iostream> // для оператора cout #include <cstdio> // для функции tmpnam int main() { char buffer[L_tmpnam]; // строка для хранения имени файла char * pointer; tmpnam(buffer); // генерация имени и сохранение в buffer std::cout << "Сгенерированное имя №1: " << buffer << std::endl; pointer = tmpnam(NULL); // генерация имени с присвоением его адреса указателю pointer std::cout << "Сгенерированное имя №2: " << pointer << std::endl; return 0; }
Пример работы программы
Эта программа будет генерировать два разных имени для временных файлов. Каждый был создан одним из двух методов, в которых функция tmpnam
может быть использована.
Сгенерированное имя №2: /tmp/file2KCP8S