Section: Manual del Programador de Linux (3)
Updated: 3 Abril 1993
Index Return to Main
Contents
mktemp - compone un nombre único (no repetido) de fichero temporal
#include <stdlib.h> char *mktemp(char *template);
La función mktemp() genera un nombre de fichero temporal único a partir de template. Los últimos seis caracteres de template deben ser XXXXXX y éstos son reemplazados con una cadena que hace que el nombre no esté repetido. Ya que será modificada, template no debe ser una cadena constante sino que debería declararse como un array de caracteres.
La función mktemp() devuelve NULL en caso de error (template no terminaba en XXXXXX) y template en otro caso. Si la llamada tuvo éxito, los últimos seis bytes de template habrán sido modificados de tal manera que el nombre resultante es único (no existe ya). Si la llamada fracasó, template se convierte en una cadena vacía.
BSD 4.3. POSIX indica/recomienda/obliga tmpnam().
El prototipo se encuentra en <unistd.h> para libc4, libc5 y glibc1; glibc2 sigue `the Single Unix Specification' y tiene el prototipo en <stdlib.h>.
Nunca use mktemp(). Algunas implementaciones siguen a BSD 4.3 y reemplazan XXXXXX por el identificador del proceso actual y una única letra, por lo que, como mucho, se pueden devolver 26 nombres diferentes. Ya que, por un lado, los nombres son fáciles de adivinar y, por otro lado, existe una condición de carrera entre la comprobación de si el nombre existe y la apertura del fichero, cualquier uso de mktemp() es un riesgo para la seguridad. La condición de carrera es evitada por mkstemp(3).
(3), tmpnam(3), tempnam(3), tmpfile(3)
This document was created by man2html, using
the manual pages.
Time: 06:16:24 GMT, January 22, 2005