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)

GNU                                             23 diciembre 2001                                     MKSTEMP(3)