Provided by: manpages-fr-dev_3.17.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.  POSIX.1-2008 marque tmpnam()
       comme étant obsolète.

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()  génère  des  noms  difficiles  à  deviner,  il  est
       néanmoins  possible  qu’entre le moment où tmpnam() 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)

COLOPHON

       Cette page fait partie de  la  publication  3.17  du  projet  man-pages
       Linux.  Une description du projet et des instructions pour signaler des
       anomalies      peuvent      être       trouvées       à       l’adresse
       http://www.kernel.org/doc/man-pages/.

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> ».

                                  6 août 2008                        TMPNAM(3)