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

NOM

       tempnam - Créer un nom de fichier temporaire

SYNOPSIS

       #include <stdio.h>

       char *tempnam(const char *rep, const char *prfixe);

   Exigences  pour les macros de test de fonctionnalité de 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 prfixe 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

NOTES

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

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

       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)

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

                                26 juillet 2007                     TEMPNAM(3)