Provided by: manpages-fr-dev_3.65d1p1-1_all bug

NOM

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

SYNOPSIS

       #include <stdio.h>

       char *tmpnam(char *s);

DESCRIPTION

       Note: évitez d'utiliser tmpnam(). Utilisez mkstemp(3) ou tmpfile(3) à la place.

       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.

ATTRIBUTS

   Multithreading (voir pthreads(7))
       La fonction tmpnam() est sûre dans un contexte multithread avec exceptions. Elle n’est pas
       sûre dans un contexte multithread si appelées avec un paramètre NULL.

       La fonction tmpnam_r() est sûre dans un contexte multithread.

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

       Depuis   2010,   cette   traduction   est   maintenue   à   l'aide   de    l'outil    po4a
       <http://po4a.alioth.debian.org/>  par l'équipe de traduction francophone au sein du projet
       perkamon <http://perkamon.alioth.debian.org/>.

       Christophe   Blaess   <http://www.blaess.fr/christophe/>   (1996-2003),    Alain    Portal
       <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> ».

                                         27 février 2014                                TMPNAM(3)