Share via


tmpfile_s

Crea un file temporaneo. Si tratta di una versione di con miglioramenti della tmpfile sicurezza, come descritto in Funzionalità di sicurezza in CRT.

Sintassi

errno_t tmpfile_s(
   FILE** pFilePtr
);

Parametri

pFilePtr
Indirizzo di un puntatore per archiviare l'indirizzo del puntatore a un flusso generato.

Valore restituito

Restituisce 0 in caso di esito positivo e un codice di errore in caso di errore.

Condizioni di errore

pFilePtr Valore restituito Contenuto di pFilePtr
NULL EINVAL non modificato

Se si verifica l'errore di convalida del parametro precedente, viene richiamato il gestore di parametri non validi, come descritto in Convalida dei parametri. Se l'esecuzione può continuare, errno è impostata su EINVALe il valore restituito è EINVAL.

Osservazioni:

La funzione tmpfile_s crea un file temporaneo e inserisce un puntatore a tale flusso nell'argomento pFilePtr. Il file temporaneo viene creato nella directory radice. Per creare un file temporaneo in una directory diversa dalla radice, usare tmpnam_s o tempnam con fopen.

Se il file non può essere aperto, tmpfile_s scrive NULL nel pFilePtr parametro . Questo file temporaneo viene eliminato automaticamente quando il file viene chiuso, quando il programma termina normalmente o quando _rmtmp viene chiamato, presupponendo che la directory di lavoro corrente non venga modificata. Il file temporaneo viene aperto in modalità w+b (lettura/scrittura binaria).

L'errore può verificarsi se si tenta più di TMP_MAX_S (vedere STDIO. H) chiama con tmpfile_s.

Per impostazione predefinita, lo stato globale di questa funzione è limitato all'applicazione. Per modificare questo comportamento, vedere Stato globale in CRT.

Requisiti

Ciclo Intestazione obbligatoria
tmpfile_s <stdio.h>

Per altre informazioni sulla compatibilità, vedere Compatibility (Compatibilità).

Esempio

Nota

Questo esempio può richiedere privilegi amministrativi per l'esecuzione in 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

Vedi anche

I/O di flusso
_rmtmp
_tempnam, _wtempnam, tmpnam, _wtmpnam