Provided by: manpages-es_1.55-3_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)