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 de 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 EINVALy 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