tmpfile(), tmpfile64()

Создать временный файл

Прототип:

#include <stdio.h>
FILE * tmpfile( void );
FILE * tmpfile64( void );

Библиотека:

libc

Описание:

Функции tmpfile() и tmpfile64() создают временный файл и открывают соответствующий поток FILE. Файл автоматически удаляется при закрытии или при завершении программы. Файл открывается в режиме обновления (т.е. fopen() с аргументом w+).

Если процесс убивается между созданием файла и его закрытием, то постоянный файл может остаться.


Note: Когда поток открывается в режиме обновления, может выполняться как чтение, так и запись. Однако за записью может не последовать чтение без промежуточного вызова функции fflush() или функции позиционирования файла ( fseek(), fsetpos(), rewind()). Аналогично, чтение может не сопровождаться записью без промежуточного вызова функции позиционирования файла, если только чтение не привело к завершению файла.

Возвращаемое значение:

Указатель на поток временного файла. Если возникла ошибка функция возвращает NULL, код ошибки записывается в errno.

Коды ошибок:

EACCESS
У вызывающего процесса недостаточно прав для создания временного файла.
EMFILE
Вызывающий процесс уже использует OPEN_MAX файловых дескрипторов.
ENFILE
В системе достигнут максимум открытых файлов.
EROFS
Файловая система для временного файла доступна только для чтения.

Примеры:

#include <stdio.h>
#include <stdlib.h>
static FILE *TempFile;
int main( void )
{
TempFile = tmpfile();
...
fclose( TempFile );
/* The temporary file will be removed when we exit. */
return (EXIT_SUCCESS);
}

Классификация:

tmpfile() — ANSI, POSIX 1003.1; tmpfile64() — Поддержка больших файлов

Безопасность использования
Точка остановки потока
Да
Обработчик прерываний
Нет
Обработчик сигналов
Нет
В потоке
Да

Тематические ссылки:

fopen(), fopen64(), freopen(), freopen64(), tempnam(), tmpnam()




Предыдущий раздел: Описание API системной библиотеки