dwww Home | Manual pages | Find package

mkstemp(3)                 Library Functions Manual                 mkstemp(3)

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  des-
       cripteur de fichier ouvert pour ce fichier.

       Les  6  derniers caractères de template doivent être XXXXXX, et ils se-
       ront 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é four-
       nit 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 à mks-
       temp().

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

VERSIONS
       mkostemp()  est  disponible  depuis  la  glibc 2.7. mkstemps() et mkos-
       temps() sont disponibles depuis la glibc 2.11.

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

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

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

       mkstemps() : non standard, mais existe sur plusieurs autres systèmes.

       mkostemp() et mkostemps() sont des extensions de la glibc.

NOTES
       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 utili-
       sateurs. 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  pro-
       gramme.  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 va-
       leur 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 Chris-
       tophe Blaess <https://www.blaess.fr/christophe/>, Stéphan  Rafin  <ste-
       phan.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.cou-
       lon@wanadoo.fr>, Julien Cristau <jcristau@debian.org>,  Thomas  Huriaux
       <thomas.huriaux@gmail.com>,  Nicolas François <nicolas.francois@centra-
       liens.net>, Florentin Duneau <fduneau@gmail.com>, Simon  Paillard  <si-
       mon.paillard@resel.enst-bretagne.fr>,    Denis   Barbier   <barbier@de-
       bian.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⟩.

Pages du manuel de Linux 6.03   5 février 2023                      mkstemp(3)

Generated by dwww version 1.15 on Sat Jun 29 00:26:27 CEST 2024.