Provided by:
manpages-fr-dev_3.27fr1.4-1_all 
NOM
tmpnam, tmpnam_r - Creer un nom de fichier temporaire
SYNOPSIS
#include <stdio.h>
char *tmpnam(char *s);
DESCRIPTION
La fonction tmpnam() renvoie un pointeur sur une chaine qui represente
un nom de fichier valide, qui n'existait pas quelques instants
auparavant. Ainsi, un programmeur naif peut croire qu'il s'agit d'un
nom correct pour creer un fichier temporaire. Si l'argument s est NULL,
ce nom est stocke dans un tampon interne qui pourra etre ecrase lors du
prochain appel a tmpnam(). Si s est non NULL, le nom y est copie (le
tampon doit faire au moins L_tmpnam octets) et la valeur de s est
renvoyee si la fonction reussit.
Le nom de fichier qui est cree est prefixe par P_tmpdir. Les constantes
L_tmpnam et P_tmpdir sont definies dans <stdio.h> comme TMP_MAX
mentionne plus bas.
VALEUR RENVOY'EE
La fonction tmpnam() renvoie un pointeur sur un nom de fichier
temporaire unique, ou NULL si l'unicite n'a pas pu etre assuree.
ERREURS
Aucune erreur n'est definie.
CONFORMIT'E
SVr4, BSD 4.3, C89, C99, POSIX.1-2001. POSIX.1-2008 marque tmpnam()
comme etant obsolete.
NOTES
La fonction tmpnam() engendre une nouvelle chaine a chaque appel,
jusqu'a TMP_MAX fois. Si on l'invoque plus de TMP_MAX fois, le
comportement depend de l'implementation.
Bien que tmpnam() genere des noms difficiles a deviner, il est
neanmoins possible qu'entre le moment ou tmpnam() a renvoye un nom de
fichier, et le moment ou le programme cree effectivement ce fichier, un
autre programme ait deja cree ce fichier avec open(2) ou comme un lien
symbolique. Ceci peut occasionner des failles de securite. Pour eviter
ces problemes, utilisez l'option O_EXCL d'open(2) lors de l'ouverture
du fichier. Ou mieux encore, utilisez mkstemp(3) ou tmpfile(3).
Les applications portables qui utilisent les threads ne peuvent pas
appeler tmpnam() avec un parametre NULL si _POSIX_THREADS ou
_POSIX_THREAD_SAFE_FUNCTIONS sont definies.
Un brouillon POSIX proposait l'utilisation d'une fonction tmpnam_r()
definie par
char *
tmpnam_r(char *s)
{
return s ? tmpnam(s) : NULL;
}
apparemment comme une precaution pour ne pas utiliser NULL. Quelques
systemes l'implementent. Pour obtenir le prototype de la glibc,
definissez _SVID_SOURCE ou _BSD_SOURCE (avant d'inclure tout fichier
d'en-tete).
BOGUES
N'utilisez jamais cette routine. Utilisez mkstemp(3) ou tmpfile(3) a la
place.
VOIR AUSSI
mkstemp(3), mktemp(3), tempnam(3), tmpfile(3)
COLOPHON
Cette page fait partie de la publication 3.27 du projet man-pages
Linux. Une description du projet et des instructions pour signaler des
anomalies peuvent etre trouvees a l'adresse
<URL:http://www.kernel.org/doc/man-pages/>.
TRADUCTION
Depuis 2010, cette traduction est maintenue a l'aide de l'outil po4a
<URL:http://po4a.alioth.debian.org/> par l'equipe de traduction
francophone au sein du projet perkamon
<URL:http://perkamon.alioth.debian.org/>.
Christophe Blaess <URL:http://www.blaess.fr/christophe/> (1996-2003),
Alain Portal <URL:http://manpagesfr.free.fr/> (2003-2006). Nicolas
Francois et l'equipe francophone de traduction de Debian (2006-2009).
Veuillez signaler toute erreur de traduction en ecrivant a
<debian-l10n-french@lists.debian.org> ou par un rapport de bogue sur le
paquet manpages-fr.
Vous pouvez toujours avoir acces a la version anglaise de ce document
en utilisant la commande << man -L C <section> <page_de_man> >>.
10 septembre 2010 TMPNAM(3)