Provided by: manpages-fr-dev_3.32d0.2p4-1_all bug

NOM

       tempnam - Créer un nom de fichier temporaire

SYNOPSIS

       #include <stdio.h>

       char *tempnam(const char *rep, const char *préfixe);

   Exigences    de    macros    de   test   de   fonctionnalités   pour   la   glibc   (consultez
   feature_test_macros(7)) :

       tempnam() : _BSD_SOURCE || _SVID_SOURCE

DESCRIPTION

       La fonction tempnam() renvoie un pointeur sur un nom  de  fichier  valide,  en  s'assurant
       qu'aucun  fichier  de  ce  nom  n'existe  au  moment  de son invocation. Le nom du fichier
       commence par le préfixe si celui-ci n'est pas NULL et contient jusqu'à cinq caractères. Le
       chemin  d'accès  devant  le  nom  du  fichier  sera  obligatoirement « approprié » (ce qui
       implique au minimum qu'on puisse y écrire).

       L'ordre de recherche du répertoire pour placer le fichier est le suivant :

       a) Le répertoire indiqué par  la  variable  d'environnement  TMPDIR,  si  elle  existe  et
          contient le nom d'un répertoire « approprié ».

       b) Sinon,  le  répertoire  indiqué  par  l'argument  rep,  s'il  n'est  pas  NULL  et  est
          « approprié ».

       c) Sinon, le répertoire défini par P_tmpdir (dans <stdio.h>) s'il est « approprié ».

       d) Enfin, un répertoire dépendant de l'implémentation (/tmp par exemple).

       La chaîne renvoyée par tempnam() est allouée avec malloc(3) et doit donc être libérée avec
       free(3).

VALEUR RENVOYÉE

       La  fonction tempnam() renvoie un pointeur sur un nom de fichier unique, ou NULL si ce nom
       n'a pas pu être généré.

ERREURS

       ENOMEM Échec de l'allocation de mémoire.

CONFORMITÉ

       SVr4, BSD 4.3, POSIX.1-2001. POSIX.1-2008 marque tempnam() comme étant obsolète.

NOTES

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

       SUSv2  ne  mentionne  pas  l'utilisation  de  TMPDIR,  la  glibc  ne l'emploiera que si le
       programme n'est pas setuid. SVr4 indique que le  répertoire  pour  d)  est  /tmp  (ce  qui
       correspond à ce que fait la glibc).

       Comme  la mémoire utilisée pour le nom du fichier est allouée dynamiquement, tempnam() est
       réentrante, et donc sûre dans un contexte multithread, contrairement à tmpnam(3).

       La fonction tempnam() crée une chaîne  différente  à  chaque  fois  qu'elle  est  appelée,
       jusqu'à  TMP_MAX  (définie  dans <stdio.h>) fois. Si on l'appelle plus de TMP_MAX fois, le
       comportement dépend de l'implémentation.

       tempnam() utilise au plus les cinq premiers octets de préfixe.

       En cas d'échec pour créer un nom de fichier inexistant, l'implémentation de  tempnam()  de
       la glibc renverra l'erreur EEXIST.

BOGUES

       La  signification  précise  d'« approprié » est indéfinie, la détermination des conditions
       d'accessibilité à un répertoire n'est pas spécifiée.

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

VOIR AUSSI

       mkstemp(3), mktemp(3), tmpfile(3), tmpnam(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> ».

                                           6 août 2008                                 TEMPNAM(3)