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

std::tmpfile

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

 
 
Библиотека ввода/вывода
Манипуляторы ввода/вывода
Функции print (C++23)
Ввод/вывод в стиле C
Буферы
(устарело в C++98)
Потоки
Абстракции
Файловый ввод/вывод
Ввод/вывод строк
Ввод/вывод массивов
(устарело в C++98)
(устарело в C++98)
(устарело в C++98)
Синхронизированный вывод
Типы
Интерфейс категорий ошибок
(C++11)
 
Ввод/Вывод в стиле C
Типы и объекты
Функции
Доступ к файлам
Прямой ввод/вывод
Неформатированный ввод/вывод
Форматированный ввод
(C++11)(C++11)(C++11)    
(C++11)(C++11)(C++11)    
Форматированный вывод
Позиционирование файла
Обработка ошибок
Операции с файлами
tmpfile
 
Определено в заголовочном файле <cstdio>
FILE* tmpfile();
Создает и открывает временный файл с уникальным автоматически сгенерированного файла.
Оригинал:
Creates and opens a temporary file with unique auto-generated filename.
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Файл открывается как двоичный файл для обновления (как по std::fopen с режимом доступа "wb+"). По крайней мере, TMP_MAX файлы могут быть открыты во время жизни программы (этот предел может быть передана std::tmpnam и может быть дополнительно ограничен FOPEN_MAX)
Оригинал:
The file is opened as binary file for update (as by std::fopen with access mode "wb+"). At least TMP_MAX files may be opened during the lifetime of a program (this limit may be shared with std::tmpnam and may be further limited by FOPEN_MAX)
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Если программа закрывает файл, например, , выполнив std::fclose, файл автоматически удаляется.
Оригинал:
If the program closes the file, e.g. by executing std::fclose, the file is automatically deleted.
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Если программа завершается нормально (по телефону std::exit, возвращаясь из main, и т.д.), все файлы, которые были открыты по телефону std::tmpfile также автоматически удаляется.
Оригинал:
If the program terminates normally (by calling std::exit, returning from main, etc), all files that were opened by calling std::tmpfile are also automatically deleted.
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Если программа завершается аварийно, это зависит от реализации, если эти временные файлы удаляются.
Оригинал:
If the program terminates abnormally, it is implementation-defined if these temporary files are deleted.
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.

Содержание

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

(Нет)

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

Соответствующий поток файла или NULL, если произошла ошибка
Оригинал:
The associated file stream or NULL if an error has occurred
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.

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

В некоторых реализациях (например, Linux), то эта функция фактически создает, открывает, и сразу же удаляет файл из файловой системы: пока открытый дескриптор файла в удаленный файл проводит программу, файл существует, но так как это было удален, его имя не появляется в любом каталоге, так что никакой другой процесс не может открыть его. Как только дескриптор файла закрыта, пространство, занимаемое файл будет утилизирован в файловой системе.
Оригинал:
On some implementations (e.g. Linux), this function actually creates, opens, and immediately deletes the file from the file system: as long as an open file descriptor to a deleted file is held by a program, the file exists, but since it was deleted, its name does not appear in any directory, so that no other process can open it. Once the file descriptor is closed, the space occupied by the file is reclaimed by the filesystem.
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.

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

#include <iostream>
#include <cstdio>
#include <cstdlib>
 
int main()
{
    FILE* tmpf = std::tmpfile();
    std::fputs("Hello, world", tmpf);
    std::rewind(tmpf);
    char buf[6];
    std::fgets(buf, sizeof buf, tmpf);
    std::cout << buf << '\n';
 
    // Linux-specific method to display the tmpfile name
    std::system("ls -l /proc/self/fd/3");
}

Возможный вывод:

Hello
lrwx------ 1 user group 64 Jun 27 00:28 /proc/self/fd/3 -> /tmp/tmpfXu58Zi (deleted)

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

Возвращает уникальное имя файла
Оригинал:
returns a unique filename
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.

(функция) [править]