Provided by: manpages-fr-dev_2.64.1-1_all bug

NOM

       tmpnam, tmpnam_r - Créer un nom de fichier temporaire

SYNOPSIS

       #include <stdio.h>

       char *tmpnam (char *s);

DESCRIPTION

       La  fonction tmpnam() renvoie un pointeur sur une chaîne qui représente
       un  nom  de  fichier  valide,  qui  n’existait  pas  quelques  instants
       auparavant.  Ainsi,  un  programmeur naïf peut croire qu’il s’agit d’un
       nom correct pour créer un fichier temporaire. Si l’argument s est NULL,
       ce nom est stocké dans un tampon interne qui pourra être écrasé lors du
       prochain appel à tmpnam(). Si s est non NULL, le nom y  est  copié  (le
       tampon  doit  faire  au  moins  L_tmpnam  octets) et la valeur de s est
       renvoyée si la fonction réussit.

       Le nom de fichier qui est créé est préfixé par P_tmpdir. Les constantes
       L_tmpnam  et  P_tmpdir  sont  définies  dans  <stdio.h>  comme  TMP_MAX
       mentionné plus bas.

VALEUR RENVOYÉE

       La fonction  tmpnam()  renvoie  un  pointeur  sur  un  nom  de  fichier
       temporaire unique, ou NULL si l’unicité n’a pas pu être assurée.

ERREURS

       Aucune erreur n’est définie.

CONFORMITÉ

       SVr4, BSD 4.3, C89, C99, POSIX.1-2001.

NOTES

       La  fonction  tmpnam()  engendre  une  nouvelle  chaîne à chaque appel,
       jusqu’à TMP_MAX  fois.  Si  on  l’invoque  plus  de  TMP_MAX  fois,  le
       comportement dépend de l’implémentation.

       Bien  que  tmpnam(3)  génère  des  noms  difficiles  à  deviner, il est
       néanmoins possible qu’entre le moment où tmpnam(3) a renvoyé un nom  de
       fichier, et le moment où le programme crée effectivement ce fichier, un
       autre programme ait déjà créé ce fichier avec open(2) ou comme un  lien
       symbolique.  Ceci peut occasionner des failles de sécurité. Pour éviter
       ces problèmes, 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  paramètre  NULL   si   _POSIX_THREADS   ou
       _POSIX_THREAD_SAFE_FUNCTIONS sont définies.

       Un  brouillon  POSIX  proposait l’utilisation d’une fonction tmpnam_r()
       définie par

            char *
            tmpnam_r(char *s)
            {
                return s ? tmpnam(s) : NULL;
            }

       apparemment comme une précaution pour ne pas  utiliser  NULL.  Quelques
       systèmes  l’implémentent.  Pour  obtenir  le  prototype  de  la  glibc,
       définissez _SVID_SOURCE ou _BSD_SOURCE avant d’inclure <stdio.h>.

BOGUES

       N’utilisez jamais cette routine. Utilisez mkstemp(3) ou tmpfile(3) à la
       place.

VOIR AUSSI

       mkstemp(3), mktemp(3), tempnam(3), tmpfile(3)

TRADUCTION

       Cette  page  de  manuel  a  été  traduite et mise à jour par Christophe
       Blaess <http://www.blaess.fr/christophe/> entre 1996 et 2003, puis  par
       Alain  Portal  <aportal AT univ-montp2 DOT fr> jusqu’en 2006, et mise à
       disposition sur http://manpagesfr.free.fr/.

       Les mises à jour et corrections de la version présente dans Debian sont
       directement         gérées         par         Nicolas         François
       <nicolas.francois@centraliens.net>   et   l’équipe    francophone    de
       traduction de Debian.

       Veuillez   signaler   toute   erreur   de   traduction  en  écrivant  à
       <debian-l10n-french@lists.debian.org> ou par un rapport de bogue sur le
       paquet manpages-fr.

       Vous  pouvez  toujours avoir accès à la version anglaise de ce document
       en utilisant la commande « man -L C <section> <page_de_man> ».

                               15 novembre 2003                      TMPNAM(3)