tmpfile_s
Crea un archivo temporal. Es una versión de con mejoras de seguridad, como se describe en Características de tmpfile
seguridad de CRT.
Sintaxis
errno_t tmpfile_s(
FILE** pFilePtr
);
Parámetros
pFilePtr
Dirección de un puntero para almacenar la dirección del puntero generado a un flujo.
Valor devuelto
Devuelve 0 si se ejecuta correctamente; devuelve un código de error si se produce un error.
Condiciones del error
pFilePtr |
Valor devuelto | Contenido de pFilePtr |
---|---|---|
NULL |
EINVAL |
no cambia |
Si se produce el error de validación de parámetros anterior, se invoca al controlador de parámetros no válidos, como se describe en Validación de parámetros. Si la ejecución puede continuar, errno
se establece en EINVAL
y el valor devuelto es EINVAL
.
Comentarios
La función tmpfile_s
crea un archivo temporal y coloca un puntero a ese flujo en el argumento pFilePtr
. El archivo temporal se crea en el directorio raíz. Para crear un archivo temporal en un directorio distinto de la raíz, use tmpnam_s
o tempnam
con fopen
.
Si el archivo no se puede abrir, tmpfile_s
escribe NULL
en el pFilePtr
parámetro . Este archivo temporal se elimina automáticamente cuando se cierra el archivo, cuando el programa finaliza normalmente o cuando _rmtmp
se llama, suponiendo que el directorio de trabajo actual no cambie. El archivo temporal se abre en modo w+b (lectura y escritura de archivos binarios).
Se puede producir un error si intenta más de TMP_MAX_S
(consulte STDIO. H) llama a con tmpfile_s
.
De manera predeterminada, el estado global de esta función está limitado a la aplicación. Para cambiar este comportamiento, consulte Estado global en CRT.
Requisitos
Routine | Encabezado necesario |
---|---|
tmpfile_s |
<stdio.h> |
Para obtener más información sobre compatibilidad, consulte Compatibilidad.
Ejemplo
Nota:
Este ejemplo puede requerir privilegios administrativos para ejecutarse en 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
Consulte también
E/S de secuencia
_rmtmp
_tempnam
, _wtempnam
, , tmpnam
, _wtmpnam