tmpnam y tmpfile

Vamos a practicar con ambas funciones, vamos a crear el archivo tmpnam.c:

tmpnam_listadoAl compilar y ejecutar este programa, tmpnam.c, podrá ver el único nombre de archivo generado por tmpnam:

tmpnam_salidaEl programa llama a tmpnam para que se genere un nombre de archivo único para un archivo temporal y genera un valor en la variable filename.

tmpnam_1Si desea usarlo, tendrá que abrirlo rápidamente para minimizar el riesgo de que otro programa abra un archivo con el mismo nombre. La llamada tmpfile crea y abre un archivo temporal al mismo tiempo, evitando así el citado riesgo. De hecho, el compilador GNU C puede advertir del uso de tmpnam cuando se compile un programa que lo usa. tmpfile_2Algunas funciones de UNIX introdujeron otro modo para generar nombres de archivos temporales usando las funciones mktemp y mkstemp. Linux acepta ambas funciones que son muy parecidas a tmpnam, excepto porque es posible especificar una plantilla del nombre de archivo temporal, lo cual se proporcionará un mayor control sobre su ubicación y su nombre:

mktem_1La función mktemp crea un nombre de archivo único  mktemp_2a partir del template proporcionado. mktemp_3el argumento template debe ser una cadena con seis caracteres X de salida.La función mktemp reemplaza estos caracteres X por caracteres con una combinación única de caracteres de nombres de archivo válidos. Retorna un indicador  de la cadena generada o un indicador nulo si no puede generar un nombre único.

La función mkstemp es similar a tmpfile porque crea y abre un archivo temporal. El nombre de archivo es generado al igual que con mktemp, pero el resultado es un descriptor de archivo abierto de bajo nivel.

mktemp_mkstempmktemp_notafinalatras

2 respuestas a tmpnam y tmpfile

  1. Fredy Cobos dijo:

    No me sacaron de ninguna DUDA, me quede mas ignorante. ( para que sirve o que hace este archivo y en que momento lo uso: tpmfiles ) Gracias.
    Aparecio en mi computadora y quiero borrarlo.

    • atikaccr dijo:

      Hola, bueno a veces un programa necesita hacer algún tipo de almacenamiento en un archivo temporal con forma de archivo.
      Un ejemplo es que si tienes una base de datos, y quieres añadir un nuevo registro, tienes primero que hacer:
      1º.- el archivo temporal
      2º.- añadir el registro al temporal
      3º.- y renombrar el temporal con el nombre del original. borrando el original.

      En resumen esta función devuelve una cadena con un nombre de archivo diferente del nombre de cualquier archivo existente, por lo que es adecuado para crear los archivos temporales sin miedo a sobre escribir un archivo existente.

      mira este otro ejemplo:

      /* ejemplo tmpnam */
      #include <stdio.h>

      int main()
      {
      char buffer [L_tmpnam];
      char * pointer;

      tmpnam (buffer);
      printf("Nombre temporal #1: %s\n",buffer);

      pointer = tmpnam(NULL);
      printf ("Nombre temporal #2: %s\n",pointer);

      return 0;
      }

      Este programa generará dos nombres diferentes para los archivos temporales. Cada uno ha sido creado por uno de los dos métodos en los que tmpnam se puede utilizar.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s