Partilhar via


tmpfile_s

Cria um arquivo temporário.Uma versão do tmpfile com aprimoramentos de segurança sistema autônomo descrito em Aprimoramentos de segurança no CRT.

errno_t tmpfile(
   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 obtiver êxito, um código de erro em caso de falha.

Condições de erro

pFilePtr

Valor de retorno

Sumário de pFilePtr

NULL

EINVAL

não alterado

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

Comentários

The tmpfile 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 or tempnam em conjunto com fopen.

Se o arquivo não pode ser aberto, tmpfile_s gravações NULL para o pFilePtr parâmetro. Este arquivo temporário é excluído automaticamente quando o arquivo estiver fechado, quando o programa é encerrado normalmente ou quando _rmtmp é chamado, supondo que a diretório de trabalho corrente não é alterado. O arquivo temporário é aberto em w+b modo (binário de leitura/gravar).

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

Requisitos

Rotina

Cabeçalho necessário

tmpfile_s

<stdio.h>

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

Exemplo

Observação:

Este exemplo requer privilégios administrativos para ser executado no Windows Vista.

// crt_tmpfile_s.c
// This program uses tmpfile 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

Equivalente do NET Framework

Não aplicável. Para telefonar 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 E/S

_rmtmp

_tempnam, _wtempnam, tmpnam, _wtmpnam