Compartilhar via


tmpfile_s

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

Sintaxe

errno_t tmpfile_s(
   FILE** pFilePtr
);

Parâmetros

pFilePtr
O endereço de um ponteiro para armazenar o endereço do ponteiro gerado em um fluxo.

Retornar valor

Retornará 0 se for bem-sucedido; um código de erro em caso de falha.

Condições de erro

pFilePtr Retornar valor Conteúdo de pFilePtr
NULL EINVAL não alterado

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

Comentários

A função tmpfile_s cria um arquivo temporário e coloca um ponteiro nesse fluxo no argumento pFilePtr. 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 com fopeno .

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

A falha pode ocorrer se você tentar mais do que TMP_MAX_S (consulte STDIO. H) chamadas com tmpfile_s.

Por padrão, o estado global dessa função tem como escopo o aplicativo. Para alterar esse comportamento, consulte Estado global na CRT.

Requisitos

Rotina Cabeçalho necessário
tmpfile_s <stdio.h>

Para obter informações sobre compatibilidade, consulte Compatibilidade.

Exemplo

Observação

Este exemplo pode exigir privilégios administrativos para ser executado no Windows.

// 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() );
}
Temporary file 1 was created
Temporary file 2 was created
Temporary file 3 was created
3 temporary files deleted

Confira também

E/S de fluxo
_rmtmp
_tempnam, _wtempnam, tmpnam, _wtmpnam