Provided by: manpages-fr-dev_2.80.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()  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 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)

COLOPHON

       Cette  page  fait  partie  de  la  publication 2.80 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> ».

                                26 juillet 2007                     TEMPNAM(3)