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.