Пространства имён
Варианты
Действия

std::tmpnam

Материал из cppreference.com
< cpp‎ | io‎ | c

 
 
Библиотеки ввода / вывода
I / O манипуляторов
C-стиль I / O
Буферы
Оригинал:
Buffers
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
basic_streambuf
basic_filebuf
basic_stringbuf
strstreambuf(устарело)
Потоки
Оригинал:
Streams
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Абстракций
Оригинал:
Abstractions
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
ios_base
basic_ios
basic_istream
basic_ostream
basic_iostream
Файл I / O
Оригинал:
File I/O
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
basic_ifstream
basic_ofstream
basic_fstream
Струнный I / O
Оригинал:
String I/O
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
basic_istringstream
basic_ostringstream
basic_stringstream
Массив I / O
Оригинал:
Array I/O
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
istrstream(устарело)
ostrstream(устарело)
strstream(устарело)
Типы
Оригинал:
Types
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
streamoff
streamsize
fpos
Интерфейс Ошибка категории
Оригинал:
Error category interface
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
iostream_category(C++11)
io_errc(C++11)
 
C-стиль I / O
Функции
Оригинал:
Functions
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Доступ к файлам
Оригинал:
File access
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Прямой ввод / вывод
Оригинал:
Direct input/output
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
fread
fwrite
Неформатированная ввода / вывода
Оригинал:
Unformatted input/output
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Форматированный ввод / вывод
Оригинал:
Formatted input/output
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Позиционирование файла
Оригинал:
File positioning
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
ftell
fgetpos
fseek
fsetpos
rewind
Обработка ошибок
Оригинал:
Error handling
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
clearerr
feof
ferror
perror
Операции с файлами
Оригинал:
Operations on files
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
remove
rename
tmpfile
tmpnam
 
Определено в заголовочном файле <cstdio>
char* tmpnam( char* filename );
Создает уникальное имя файла, который не назвать в настоящее время существующий файл и сохраняет его в строку символов, на которую указывает filename. Функция способна генерировать до TMP_MAX уникальных имен файлов, но все или некоторые из них, возможно, уже в использовании, и, следовательно, не подходящие значения возврата.
Оригинал:
Creates an unique filename that does not name a currently existing file, and stores it in the character string pointed to by filename. The function is capable of generating up to TMP_MAX of unique filenames, but some or all of them may already be in use, and thus not suitable return values.
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.

Содержание

[править] Параметры

filename -
Указатель на массив символов, способных, владеющих не менее L_tmpnam байт, которые будут использоваться в качестве результата буфера. Если NULL передается указатель на внутренний статический буфер возвращается .
Оригинал:
pointer to the character array capable of holding at least L_tmpnam bytes, to be used as a result buffer. If NULL is passed, a pointer to an internal static buffer is returned.
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.

[править] Возвращаемое значение

filename если filename не было NULL. В противном случае указатель на внутренний статический буфер возвращается. Если нет подходящего файла может быть создан, NULL возвращается.
Оригинал:
filename if filename was not NULL. Otherwise a pointer to an internal static buffer is returned. If no suitable filename can be generated, NULL is returned.
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.

[править] Заметки

При вызове с нулевого указателя аргумента, эта функция изменяет глобальный объект. Если другой поток вызывает std::tmpnam с нулевого указателя аргумента в то же время, поведение не определено из-за расы данных.
Оригинал:
When called with null pointer argument, this function modifies a global object. If another thread calls std::tmpnam with null pointer argument at the same time, the behavior is undefined due to a data race.
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Хотя имена порожденных std::tmpnam трудно догадаться, вполне возможно, что файл с таким именем будет создан другой процесс между моментом std::tmpnam возвращается и момент эта программа пытается использовать вернулся имя для создания файла. Стандартный std::tmpfile функции и функции POSIX mkstemp не имеют этой проблемы.
Оригинал:
Although the names generated by std::tmpnam are difficult to guess, it is possible that a file with that name is created by another process between the moment std::tmpnam returns and the moment this program attempts to use the returned name to create a file. The standard function std::tmpfile and the POSIX function mkstemp do not have this problem.
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.

[править] Пример

#include <iostream>
#include <cstdio>
#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

[править] См. также

создает и открывает временный, автоматическое удаление файлов
Оригинал:
creates and opens a temporary, auto-removing file
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.

(функция) [edit]
C documentation for tmpnam