Provided by: manpages-fr-dev_3.32d0.2p4-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 tout fichier d'en‐tête).

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.32 du projet man-pages Linux. Une description
       du projet et des  instructions  pour  signaler  des  anomalies  peuvent  être  trouvées  à
       l'adresse <URL:http://www.kernel.org/doc/man-pages/>.

TRADUCTION

       Depuis    2010,    cette   traduction   est   maintenue   à   l'aide   de   l'outil   po4a
       <URL:http://po4a.alioth.debian.org/> par l'équipe 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 François et l'équipe francophone  de
       traduction de Debian (2006-2009).

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

                                        10 septembre 2010                               TMPNAM(3)