NOMBRE¶
mkstemp - crea un fichero temporal único (no repetido)
SINOPSIS¶
#include <stdlib.h>
 
int mkstemp(char *template);
DESCRIPCIÓN¶
La función 
mkstemp() 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. El fichero es entonces creado en
  modo de lectura/escritura y los permisos 0666 (glibc 2.0.6 y anteriores) o
  0600 (glibc 2.0.7 y posteriores). Ya que será modificada, 
template
  no debe ser una cadena constante sino que se debería declarar como un
  array de caracteres. El fichero se abre con la opción O_EXCL,
  garantizando que cuando 
mkstemp termine con éxito seremos el
  único usuario.
VALOR DEVUELTO¶
La función 
mkstemp() devuelve el descriptor de fichero (fd) del
  fichero temporal creado o -1 en caso de error.
ERRORES¶
  - EINVAL
 
  - Los últimos seis caracteres de template no eran
      XXXXXX. En este caso template no se modifica.
 
  - EEXIST
 
  - No se pudo crear un nombre no repetido de fichero temporal.
      En este caso el contenido de template es indefinido.
 
OBSERVACIONES¶
El comportamiento anterior (crear un fichero con el modo 0666) puede ser un
  peligro para la seguridad, especialmente porque otras versiones de Unix usan
  0600 y alguien podría pasar por alto este detalle al portar programas.
 
De manera más general, la especificación de POSIX no dice nada sobre
  los modos de los ficheros, por lo que la aplicación debería
  asegurarse de que su máscara 
umask tenga un valor apropiado antes
  de llamar a 
mkstemp.
BSD 4.3, POSIX 1003.1-2001
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>.
VÉASE TAMBIÉN¶
mkdtemp(3), 
mktemp(3), 
tmpnam(3), 
tempnam(3),
  
tmpfile(3)