Поделиться через


tmpfile_s

Создает временный файл. Здесь представлена версия tmpfile с усовершенствованной безопасностью, как описано в разделе Функции безопасности в CRT.

errno_t tmpfile_s(
   FILE** pFilePtr
);

Параметры

  • [исходящий] pFilePtr
    Адрес указателя для хранения адреса созданного указателя на поток.

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

Возвращает 0 при успехе; код ошибки при неудаче.

Условия возникновения ошибки

pFilePtr

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

Содержимое pFilePtr

NULL

EINVAL

не изменено

Если возникает вышеуказанная ошибка проверки параметров, вызывается обработчик недопустимого параметра, как описано в разделе Проверка параметров. Если продолжение выполнения разрешено, эти функции устанавливают для errno значение EINVAL и возвращают EINVAL.

Заметки

Функция tmpfile_s создает временный файл и помещает указатель на этот поток в аргументе pFilePtr. Временный файл создается в корневом каталоге. Чтобы создать временный файл в каталоге, отличном от корневого, используйте функцию tmpnam_s или tempnam в сочетании с fopen.

Если файл не может быть открыт, tmpfile_s записывает NULL в параметр pFilePtr. Этот временный файл автоматически удаляется при закрытии файла, нормальном завершении программы или при вызове _rmtmp при условии, что текущая рабочая папка не изменяется. Временный файл открывается в режиме w+b (бинарный чтения/записи).

Ошибка может возникать при попытке более чем TMP_MAX_S (см. STDIO.H) вызовов tmpfile_s.

Требования

Подпрограмма

Обязательный заголовок

tmpfile_s

<stdio.h>

Дополнительные сведения о совместимости см. в разделе Совместимость во введении.

Пример

Примечание

Для выполнения этого примера в среде Windows Vista требуются права администратора.

// crt_tmpfile_s.c
// This program uses tmpfile_s to create a
// temporary file, then deletes this file with _rmtmp.
//

#include <stdio.h>

int main( void )
{
   FILE *stream;
   char tempstring[] = "String to be written";
   int  i;
   errno_t err;

   // Create temporary files.
   for( i = 1; i <= 3; i++ )
   {
      err = tmpfile_s(&stream);
      if( err )
         perror( "Could not open new temporary file\n" );
      else
         printf( "Temporary file %d was created\n", i );
   }

   // Remove temporary files.
   printf( "%d temporary files deleted\n", _rmtmp() );
}
  

Эквивалент в .NET Framework

Неприменимо. Для вызова стандартной функции C используйте PInvoke. Дополнительные сведения см. в разделе Примеры вызовов неуправляемого кода.

См. также

Ссылки

Потоковый ввод-вывод

_rmtmp

_tempnam, _wtempnam, tmpnam, _wtmpnam