Provided by: manpages-fr-dev_4.13-4_all bug

NOM

       tempnam - Créer un nom de fichier temporaire

SYNOPSIS

       #include <stdio.h>

       char *tempnam(const char *rép, const char *préfixe);

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

       tempnam() :
           Depuis la glibc 2.19 :
               _DEFAULT_SOURCE
           Pour la glibc 2.19 et antérieures :
               _BSD_SOURCE || _SVID_SOURCE

DESCRIPTION

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

       La fonction tempnam() renvoie un pointeur sur un nom  de  fichier  valable  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  rép,  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
       temporaire unique. Elle renvoie NULL si un nom unique 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.

ATTRIBUTS

       Pour une explication des termes utilisés dans cette section, consulter attributes(7).

       ┌──────────┬──────────────────────┬─────────────┐
       │InterfaceAttributValeur      │
       ├──────────┼──────────────────────┼─────────────┤
       │tempnam() │ Sécurité des threads │ MT-Safe env │
       └──────────┴──────────────────────┴─────────────┘

CONFORMITÉ

       SVr4, 4.3BSD, 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. Cela 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.

       L'implémentation  de  tempnam() de la glibc échoue avec l'erreur EEXIST lors de l'échec de
       la recherche d'un nom unique.

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.

VOIR AUSSI

       mkstemp(3), mktemp(3), tmpfile(3), tmpnam(3)

COLOPHON

       Cette  page  fait partie de la publication 5.10 du projet man-pages Linux. Une description
       du projet et des instructions pour signaler des anomalies et la dernière version de  cette
       page peuvent être trouvées à l'adresse https://www.kernel.org/doc/man-pages/.

TRADUCTION

       La  traduction  française  de  cette  page  de  manuel  a  été créée par Christophe Blaess
       <https://www.blaess.fr/christophe/>, Stéphan  Rafin  <stephan.rafin@laposte.net>,  Thierry
       Vignaud  <tvignaud@mandriva.com>,  François Micaux, Alain Portal <aportal@univ-montp2.fr>,
       Jean-Philippe   Guérard   <fevrier@tigreraye.org>,   Jean-Luc   Coulon   (f5ibh)    <jean-
       luc.coulon@wanadoo.fr>,    Julien    Cristau    <jcristau@debian.org>,    Thomas   Huriaux
       <thomas.huriaux@gmail.com>, Nicolas François <nicolas.francois@centraliens.net>, Florentin
       Duneau  <fduneau@gmail.com>, Simon Paillard <simon.paillard@resel.enst-bretagne.fr>, Denis
       Barbier  <barbier@debian.org>,  David  Prévot  <david@tilapin.org>  et  Frédéric  Hantrais
       <fhantrais@gmail.com>

       Cette  traduction  est  une  documentation libre ; veuillez vous reporter à la GNU General
       Public  License  version 3  ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩   concernant   les
       conditions de copie et de distribution. Il n'y a aucune RESPONSABILITÉ LÉGALE.

       Si vous découvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un
       message à debian-l10n-french@lists.debian.org ⟨⟩.

                                        15 septembre 2017                              TEMPNAM(3)