Compartir a través de


tmpfile_s

crea un archivo temporal.Es una versión de tmpfile con mejoras de seguridad como se describe en Características de seguridad en CRT.

errno_t tmpfile_s(
   FILE** pFilePtr
);

Parámetros

  • [out] pFilePtr
    La dirección de un puntero para almacenar la dirección del puntero generado en una secuencia.

Valor devuelto

Devuelve 0 si es correcto, un código de error del error.

condiciones de error

pFilePtr

Valor devuelto

Contenido de pFilePtr

NULL

EINVAL

no cambiado

Si el error de validación anterior de parámetro aparece, se invoca el controlador no válido de parámetro, tal y 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 de tmpfile_s crea un archivo temporal y coloca un puntero a esa secuencia en el argumento de pFilePtr .el archivo temporal se crea en el directorio raíz.Para crear un archivo temporal en un directorio distinto de la raíz, utilice tmpnam_s o tempnam junto con fopen.

Si no se puede abrir el archivo, tmpfile_s escribe NULL al parámetro de pFilePtr .Este archivo temporal se elimina automáticamente cuando se cierra el archivo, cuando el programa termina normalmente, o cuando _rmtmp se denomina, suponiendo que el directorio de trabajo actual no cambia.El archivo temporal se abre en el modo de w+b (escritura binaria).

El error puede producirse si intenta más que TMP_MAX_S (vea STDIO.H) las llamadas con tmpfile_s.

Requisitos

rutina

Encabezado necesario

tmpfile_s

<stdio.h>

Para obtener información adicional de compatibilidad, vea compatibilidad en la Introducción.

Ejemplo

[!NOTA]

Este ejemplo requiere que se ejecuten privilegios administrativos en 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 en .NET Framework

No es aplicable Para llamar a la función estándar de C, utilice PInvoke. Para obtener más información, vea La invocación de plataforma ejemplos.

Vea también

Referencia

E/S de la secuencia

_rmtmp

_tempnam, _wtempnam, tmpnam, _wtmpnam