Condividi tramite


tmpfile_s

Crea un file temporaneo: Si tratta di una versione di _tmpfile con miglioramenti di sicurezza come descritto in Funzionalità di sicurezza in CRT.

errno_t tmpfile_s(
   FILE** pFilePtr
);

Parametri

  • [out] pFilePtr
    L'indirizzo di un puntatore per archiviare l'indirizzo del puntatore generato in un flusso.

Valore restituito

Restituisce 0 se ha esito positivo, un codice di errore in caso di errore.

Condizioni di errore

pFilePtr

Valore restituito

Contenuto di pFilePtr

NULL

EINVAL

non modificato

Se si verifica un errore di convalida dei parametri sopra riportati, viene invocato il gestore del parametro non valido, come descritto in Convalida dei parametri. Se l'esecuzione può continuare, errno viene impostato su EINVAL ed il valore di ritorno è EINVAL.

Note

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

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

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

Requisiti

Routine

Intestazione obbligatoria

tmpfile_s

<stdio.h>

Per ulteriori informazioni sulla compatibilità, vedere Compatibilità nell'Introduzione.

Esempio

Nota

In questo esempio sono richiesti privilegi amministrativi per l'esecuzione su 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() );
}
  

Equivalente .NET Framework

Non applicabile. Per chiamare la funzione standard C, utilizzare PInvoke. Per ulteriori informazioni, vedere Esempi di Invocazione della Piattaforma.

Vedere anche

Riferimenti

I/O di flusso

_rmtmp

_tempnam, _wtempnam, tmpnam, _wtmpnam