std:: tmpnam
|
Определено в заголовочном файле
<cstdio>
|
||
|
char
*
tmpnam
(
char
*
filename
)
;
|
||
Создает уникальное имя файла, которое не соответствует существующему файлу, и сохраняет его в строке, на которую указывает filename . Функция способна генерировать до TMP_MAX уникальных имен файлов, но некоторые или все из них могут уже использоваться и поэтому не подходят в качестве возвращаемых значений.
std::tmpnam изменяет статическое состояние и не обязана быть потокобезопасной.
Содержание |
Параметры
| filename | - | указатель на массив символов, способный содержать как минимум L_tmpnam байт, используемый в качестве результирующего буфера. Если передан нулевой указатель, возвращается указатель на внутренний статический буфер |
Возвращаемое значение
filename если filename не был нулевым указателем. В противном случае возвращается указатель на внутренний статический буфер. Если подходящее имя файла не может быть сгенерировано, возвращается нулевой указатель.
Примечания
Хотя имена, генерируемые
std::tmpnam
, сложно угадать, существует вероятность, что файл с таким именем будет создан другим процессом в промежутке между моментом,
std::tmpnam
возвращает результат и моментом, когда программа попытается использовать возвращённое имя для создания файла. Стандартная функция
std::tmpfile
и POSIX-функция
mkstemp
не имеют этой проблемы (создание уникального каталога с использованием только стандартной библиотеки C всё ещё требует применения
tmpnam
).
Системы POSIX дополнительно определяют функцию с похожим названием
tempnam
, которая предоставляет выбор директории (по умолчанию используется опционально определённый макрос
P_tmpdir
).
Пример
#include <cstdio> #include <iostream> #include <string> int main() { std::string name1 = std::tmpnam(nullptr); std::cout << "temporary file name: " << name1 << '\n'; char name2[L_tmpnam]; if (std::tmpnam(name2)) std::cout << "temporary file name: " << name2 << '\n'; }
Возможный вывод:
temporary file name: /tmp/fileDjwifs temporary file name: /tmp/fileEv2bfW
Смотрите также
|
создает и открывает временный файл с автоматическим удалением
(функция) |
|
|
(C++17)
|
возвращает каталог, подходящий для временных файлов
(функция) |
|
C documentation
для
tmpnam
|
|