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

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.

CONFORME A

       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)