Provided by: manpages-es_1.55-10_all bug

NOMBRE

       mktemp - compone un nombre único (no repetido) de fichero temporal

SINOPSIS

       #include <stdlib.h>

       char *mktemp(char *template);

DESCRIPCIÓN

       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.

VALOR DEVUELTO

       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.

ERRORES

       EINVAL Los últimos seis caracteres de template no eran XXXXXX.

CONFORME A

       BSD 4.3. POSIX indica/recomienda/obliga tmpnam(3).

NOTA

       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>.

FALLOS

       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).

VÉASE TAMBIÉN

       mkstemp(3), tempnam(3), tmpfile(3), tmpnam(3)