Share via


tmpfile_s

Cria um arquivo temporário.Ele é uma versão do tmpfile com aprimoramentos de segurança, conforme descrito em Recursos de segurança no CRT.

errno_t tmpfile_s(
   FILE** pFilePtr
);

Parâmetros

  • [out]pFilePtr
    O endereço de um ponteiro para armazenar o endereço do ponteiro gerado para um fluxo.

Valor de retorno

Retorna 0 se for bem-sucedido, um código de erro em caso de falha.

Condições de erro

pFilePtr

Valor de retorno

Conteúdo depFilePtr

NULL

EINVAL

não são alterados

Se o erro de validação de parâmetro acima ocorrer, o manipulador de parâmetro inválido é invocado, conforme descrito em Validação de parâmetro.Se a execução terá permissão para continuar, errno for definido como EINVAL e o valor de retorno é EINVAL.

Comentários

O tmpfile_s função cria um arquivo temporário e coloca um indicador para esse fluxo na pFilePtr argumento.O arquivo temporário é criado no diretório raiz.Para criar um arquivo temporário em um diretório diferente da raiz, use tmpnam_s ou tempnam em conjunto com fopen.

Se o arquivo não pode ser aberto, tmpfile_s grava NULL para o pFilePtr parâmetro.Esse arquivo temporário é excluído automaticamente quando o arquivo é fechado, quando o programa é encerrado normalmente, ou quando _rmtmp é chamado, supondo que não altera o diretório de trabalho atual.O arquivo temporário é aberto no w+b modo (binário de leitura/gravação).

Falha pode ocorrer se você tentar mais de TMP_MAX_S (consulte STDIO.H) chamadas comtmpfile_s.

Requisitos

Rotina

Cabeçalho necessário

tmpfile_s

<stdio.h>

Para obter informações adicionais de compatibilidade, consulte compatibilidade na introdução.

Exemplo

ObservaçãoObservação

Este exemplo requer privilégios administrativos para executar no 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() );
}
  

Equivalência do .NET Framework

Não aplicável. Para chamar a função c padrão, use PInvoke. Para obter mais informações, consulte Exemplos de invocação de plataforma.

Consulte também

Referência

Fluxo de i/O

_rmtmp

_tempnam, _wtempnam, tmpnam, _wtmpnam