std::tmpfile
Материал из cppreference.com
![]() |
Эта страница была переведена автоматически с английской версии вики используя Переводчик Google. Перевод может содержать ошибки и странные формулировки. Наведите курсор на текст, чтобы увидеть оригинал. Щёлкните здесь, чтобы увидеть английскую версию этой страницы. (Вы можете помочь в исправлении ошибок и улучшении перевода. Для инструкций перейдите по ссылке.) |
Определено в заголовочном файле <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. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (функция) | |
Документация C по tmpfile
|