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 EINVAL
e 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