Section: Manual del Programador de Linux (3)
Updated: 3 Abril 1993
Index Return to Main
Contents
mkstemp - crea un fichero temporal único (no repetido)
#include <stdlib.h> int mkstemp(char *template);
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.
La función mkstemp() devuelve el descriptor de fichero (fd) del fichero temporal creado o -1 en caso de error.
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.
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>.
(3), tmpnam(3), tempnam(3), tmpfile(3)
This document was created by man2html, using
the manual pages.
Time: 06:16:23 GMT, January 22, 2005