Provided by: manpages-fr-dev_3.57d1p1-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

       Si  l'exécution  réussit,  la fonction tempnam() renvoie un pointeur sur un nom de fichier
       unique. Elle renvoie NULL si ce nom n'a pas pu être généré, et affecte à errno le code  de
       l'erreur.

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

                                          19 avril 2013                                TEMPNAM(3)