.\" Oye Emacs! este fichero es un fuente -*- nroff -*- . .\" .\" Copyright (C) 1993 David Metcalfe (david@prism.demon.co.uk) .\" .\" Se autoriza hacer y distribuir copias literales de este manual siempre .\" que el aviso de copyright y este aviso de autorización se preserven en .\" todas las copias. .\" .\" Se autoriza copiar y distribuir versiones modificadas de este manual .\" bajo las condiciones para copiar literalmente, siempre que todo el trabajo .\" resultante sea distribuido bajo los términos de un aviso de autorización .\" idéntico a éste. .\" .\" Ya que el kernel y las bibliotecas de Linux están cambiando .\" constantemente, esta página de manual puede ser incorrecta u obsoleta. .\" El(Los) autor(es) no asumen ninguna responsabilidad de los errores u .\" omisiones, o de los daños resultantes del uso de la información contenida .\" aquí. El(Los) autor(es) pueden no haber tomado el mismo nivel de cuidado en .\" la producción de este manual, que es licenciado gratuitamente, como el que .\" podrían haber tomado trabajando profesionalmente. .\" .\" Las versiones procesadas o tratadas de este manual que no se acompañen .\" con los fuentes deben reconocer el copyright y los autores de este trabajo. .\" .\" Referencias consultadas: .\" Código fuente de la libc de Linux .\" Guía del Programador _POSIX de Lewine (O'Reilly & Associates, 1991) .\" páginas 'man' de 386BSD .\" Modificado el Sábado 24 de Julio de 1993 a las 18:48:06 por Rik Faith (faith@cs.unc.edu) .\" Modificado el Viernes 23 de Junio de 1995 a las 01:26:34 por Andries Brouwer (aeb@cwi.nl) .\" (sugerido por Scott Burkett ) .\" Modificado el domingo 28 de marzo de 1999 por Andries Brouwer (aeb@cwi.nl) .\" Traducción revisada el martes 6 de abril de 1999 por .\" Juan Piernas Cánovas .\" Traducción revisada por Miguel Pérez Ibars el 29-marzo-2005 .\" .TH MKTEMP 3 "3 Abril 1993" "GNU" "Manual del Programador de Linux" .SH NOMBRE mktemp \- compone un nombre único (no repetido) de fichero temporal .SH SINOPSIS .nf .B #include .sp .BI "char *mktemp(char *" template ); .fi .SH DESCRIPCIÓN La función \fBmktemp()\fP genera un nombre de fichero temporal único a partir de \fItemplate\fP. Los últimos seis caracteres de \fItemplate\fP deben ser XXXXXX y éstos son reemplazados con una cadena que hace que el nombre no esté repetido. Ya que será modificada, .I template no debe ser una cadena constante sino que debería declararse como un array de caracteres. .SH "VALOR DEVUELTO" La función \fBmktemp()\fP devuelve NULL en caso de error (\fItemplate\fP no terminaba en XXXXXX) y \fItemplate\fP en otro caso. Si la llamada tuvo éxito, los últimos seis bytes de \fItemplate\fP habrán sido modificados de tal manera que el nombre resultante es único (no existe ya). Si la llamada fracasó, \fItemplate\fP se convierte en una cadena vacía. .SH "ERRORES" .TP .B EINVAL Los últimos seis caracteres de \fItemplate\fP no eran XXXXXX. .SH "CONFORME A" BSD 4.3. POSIX indica/recomienda/obliga .BR tmpnam (3). .SH NOTA El prototipo se encuentra en .I para libc4, libc5 y glibc1; glibc2 sigue `the Single Unix Specification' y tiene el prototipo en .IR . .SH FALLOS Nunca use \fBmktemp()\fP. Algunas implementaciones siguen a BSD 4.3 y reemplazan XXXXXX por el identificador del proceso actual y una única letra, por lo que, como mucho, se pueden devolver 26 nombres diferentes. Ya que, por un lado, los nombres son fáciles de adivinar y, por otro lado, existe una condición de carrera entre la comprobación de si el nombre existe y la apertura del fichero, cualquier uso de \fBmktemp()\fP es un riesgo para la seguridad. La condición de carrera es evitada por .BR mkstemp (3). .SH "VÉASE TAMBIÉN" .BR mkstemp (3), .BR tempnam (3), .BR tmpfile (3), .BR tmpnam (3)