1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107
|
.\" Copyright (c) 1999 Andries Brouwer (aeb@cwi.nl)
.\"
.\" Permission is granted to make and distribute verbatim copies of this
.\" manual provided the copyright notice and this permission notice are
.\" preserved on all copies.
.\"
.\" Permission is granted to copy and distribute modified versions of this
.\" manual under the conditions for verbatim copying, provided that the
.\" entire resulting derived work is distributed under the terms of a
.\" permission notice identical to this one
.\"
.\" Since the Linux kernel and libraries are constantly changing, this
.\" manual page may be incorrect or out-of-date. The author(s) assume no
.\" responsibility for errors or omissions, or for damages resulting from
.\" the use of the information contained herein. The author(s) may not
.\" have taken the same level of care in the production of this manual,
.\" which is licensed free of charge, as they might when working
.\" professionally.
.\"
.\" Formatted or processed versions of this manual, if unaccompanied by
.\" the source, must acknowledge the copyright and authors of this work.
.\"
.\" Translated into Spanish Thu Mar 12 16:02:28 CET 1998 by Gerardo
.\" Aburruzaga García <gerardo.aburruzaga@uca.es>
.\" Translation revised Sun Jun 27 1999 by Juan Piernas <piernas@ditec.um.es>
.\"
.TH TEMPNAM 3 "14 junio 1999" "" "Manual del Programador de Linux"
.SH NOMBRE
tempnam \- crea un nombre para un fichero temporal
.SH SINOPSIS
.nf
.B #include <stdio.h>
.sp
.BI "char *tempnam(const char *" dir ", const char *" pfj );
.fi
.SH DESCRIPCIÓN
La función
.B tempnam()
devuelve un puntero a una cadena que es un nombre válido de fichero tal que
no existe un fichero con este nombre cuando
.B tempnam()
lo comprueba.
El sufijo del nombre de fichero de la ruta generada comenzará con
.I pfj
en el caso de que
.I pfj
sea una cadena distinta de NULL con al menos 5 bytes.
La parte de directorios del prefijo de la ruta generada necesita ser
`adecuada' (normalmente, esto implica que al menos se pueda escribir).
Los pasos que se siguen para intentar encontrar un directorio adecuado son
los siguientes: (i) En el caso de que la variable de entorno TMPDIR exista y
contenga el nombre de un directorio apropiado, se utiliza ese.
(ii) En caso contrario, si el argumento
.I dir
es distinto de NULL y apropiado, se usa.
(iii) En caso contrario,
.I P_tmpdir
(tal y como se define en
.IR <stdio.h> )
se usa cuando sea conveniente.
(iv) Finalmente, se puede usar un directorio definido por la implementación.
.SH "VALOR DEVUELTO"
La función
.B tempnam()
devuelve un puntero al nombre de fichero único en el sistema o NULL si no se
puede generar el nombre.
.SH "ERRORES"
.TP
.B ENOMEM
Ha fallado la reserva de memoria.
.LP
.SH OBSERVACIONES
SUSv2 no menciona el uso de TMPDIR. glibc lo usará sólo cuando el programa
no sea suid.
SVID2 especifica que el directorio usado en el caso (iv) es
.IR /tmp .
SVID2 especifica que la cadena que devuelve
.B tempnam()
se reservó usando
.BR malloc (3)
y que, por tanto, puede ser liberada con
.BR free (3).
.LP
La función
.B tempnam()
genera una cadena diferente cada vez que se llama, hasta
TMP_MAX veces (definida en
.IR <stdio.h> ).
Si se llama más de TMP_MAX veces,
el comportamiento depende de la implementación.
.LP
En el caso de que el argumento
.I pfj
tenga una longitud mayor de 5, glibc usará los primeros 5 bytes. En el caso
de que la búsqueda de un nombre único falle, glibc devolverá EEXIST.
.SH FALLOS
El significado preciso de `adecuado' no está definido. Está sin especificar
cómo se determina la accesibilidad de un directorio.
Nunca use esta función. En su lugar, use
.BR mkstemp (3).
.SH "CONFORME A"
SVID 2, BSD 4.3
.SH "VÉASE TAMBIÉN"
.BR mktemp (3),
.BR mkstemp (3),
.BR tmpfile (3),
.BR tmpnam (3)
|