Provided by: manpages-fr-dev_4.23.1-1_all bug

NOM

       mkstemp, mkostemp, mkstemps, mkostemps - Créer un fichier temporaire unique

BIBLIOTHÈQUE

       Bibliothèque C standard (libc, -lc)

SYNOPSIS

       #include <stdlib.h>

       int mkstemp(char *template);
       int mkostemp(char *template, int flags);
       int mkstemps(char *template, int suffixlen);
       int mkostemps(char *template, int suffixlen, int flags);

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

       mkstemp() :
           _XOPEN_SOURCE >= 500
               || /* glibc >= 2.12: */ _POSIX_C_SOURCE >= 200809L
               || /* glibc <= 2.19: */ _SVID_SOURCE || _BSD_SOURCE

       mkostemp():
           _GNU_SOURCE

       mkstemps():
           /* glibc >= 2.19 : */ _DEFAULT_SOURCE
               || /* glibc <= 2.19 : */ _SVID_SOURCE || _BSD_SOURCE

       mkostemps():
           _GNU_SOURCE

DESCRIPTION

       La fonction mkstemp() engendre un nom de fichier temporaire  unique,  à  partir  du  motif
       template,  crée  et  ouvre le fichier, et renvoie un descripteur de fichier ouvert pour ce
       fichier.

       Les 6 derniers caractères de template doivent être XXXXXX, et ils seront remplacés par une
       chaîne  rendant le nom de fichier unique. Comme il sera modifié, template ne doit pas être
       une chaîne constante, mais un tableau de caractères.

       Le fichier est créé en mode 0600, c'est-à-dire en lecture et écriture pour le propriétaire
       seulement.  Le  descripteur de fichier renvoyé fournit les accès en lecture et en écriture
       sur le fichier. Le fichier est ouvert avec l'attribut O_EXCL de open(2), garantissant  que
       l'appelant soit le processus qui a créé le fichier.

       La  fonction mkostemp() agit comme mkstemp(), à la différence que les bits suivants — avec
       la même signification que pour open(2) —  peuvent  être  définis  dans  flags :  O_APPEND,
       O_CLOEXEC  et  O_SYNC.  Remarquez qu’en créant le fichier, mkostemp() contient les valeurs
       O_RDWR, O_CREAT et O_EXCL dans l’argument flags donné à open(2) ; inclure ces valeurs dans
       l’argument  flags  donné  à  mkostemp()  n’est  pas  nécessaire et produit des erreurs sur
       certains systèmes.

       La fonction mkstemps() agit comme mkstemp() sauf que la chaîne dans template  contient  un
       suffixe  de  suffixlen caractères. Ainsi, template est de la forme préfixeXXXXXXsuffixe et
       la chaîne XXXXXX est modifiée comme dans mkstemp().

       La fonction mkostemps() est à mkstemps() ce que mkostemp() est à mkstemp().

VALEUR RENVOYÉE

       Si elles réussissent, ces fonctions renvoient le descripteur du fichier temporaire créé ou
       -1 si elles échouent, auquel cas errno contient le code d'erreur.

ERREURS

       EEXIST Impossible  de  créer  un nom de fichier temporaire unique. Le contenu template est
              alors imprévisible.

       EINVAL Pour mkstemp() et mkostemp() : les six derniers caractères de template ne sont  pas
              XXXXXX ; template n'est pas modifié.

              Pour   mkstemps()   et   mkostemps() :   template   a  une  longueur  inférieure  à
              (6 + suffixlen), ou les six derniers  caractères  avant  le  suffixe  ne  sont  pas
              XXXXXX.

       Ces fonctions peuvent également échouer avec une des erreurs décrites pour open(2).

ATTRIBUTS

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

       ┌────────────────────────────────────────────────────────┬──────────────────────┬─────────┐
       │InterfaceAttributValeur  │
       ├────────────────────────────────────────────────────────┼──────────────────────┼─────────┤
       │mkstemp(), mkostemp(), mkstemps(), mkostemps()          │ Sécurité des threads │ MT-Safe │
       └────────────────────────────────────────────────────────┴──────────────────────┴─────────┘

STANDARDS

       mkstemp()
              POSIX.1-2001.

       mkstemps()
              BSD.

       mkostemp()
       mkostemps()
              GNU.

HISTORIQUE

       mkstemp()
              4.3BSD, POSIX.1-2001.

       mkstemps()
              glibc 2.11. BSD, Mac OS X, Solaris, Tru64.

       mkostemp()
              glibc 2.7.

       mkostemps()
              glibc 2.11.

       Dans  la  version 2.06  de  la  glibc  et  auparavant, le fichier était créé en mode 0666,
       c'est-à-dire en lecture et écriture pour tous les utilisateurs.  Cet  ancien  comportement
       est un trou de sécurité potentiel, surtout depuis que les autres dérivés UNIX utilisent le
       mode 0600, et quelqu'un risque d'oublier ce détail en effectuant un portage de  programme.
       POSIX.1-2008 ajoute l'obligation de créer ce fichier en mode 0600.

       Plus généralement, la spécification POSIX de mkstemp() ne dit rien des modes des fichiers,
       ainsi les applications doivent s'assurer que la valeur du masque de mode  de  création  de
       fichiers (consultez umask(2)) est correcte avant d'appeler mkstemp() (et mkostemp()).

VOIR AUSSI

       mkdtemp(3), mktemp(3), tempnam(3), tmpfile(3), tmpnam(3)

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> et David Prévot <david@tilapin.org>

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