Loading

NOM

       mkstemp, mkostemp - Créer un fichier temporaire unique

SYNOPSIS

       #include <stdlib.h>

       int mkstemp(char *template);

       int mkostemp (char *template, int flags);

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

       mkstemp() : _BSD_SOURCE || _SVID_SOURCE || _XOPEN_SOURCE >= 500
       mkostemp() : _GNU_SOURCE

       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éé avec les permissions 0600, c’est-à-dire lecture et
       écriture pour le propriétaire seulement (dans la  version  2.06  de  la
       glibc  et antérieures, le fichier était créé avec les permissions 0666,
       c’est-à-dire lecture  et  écriture  pour  tous  les  utilisateurs).  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 ait créé
       le fichier.

       mkostemp() agit comme mkstemp(), à la  différence  que  les  attributs,
       comme  pour  open(2),  peuvent  être  définis dans flags (c’est-à-dire,
       O_APPEND, O_SYNC).

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  unique.  Le  contenu
              template est imprévisible.

       EINVAL Les  six  derniers  caractères  de  template ne sont pas XXXXXX.
              template n’est pas modifiée.

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

VERSIONS

       mkostemp() est disponible depuis la glibc 2.7.

CONFORMITÉ

       mkstemp() : BSD 4.3, POSIX.1-2001. mkostemp() : est une extension de la
       glibc.

NOTES

       L’ancien comportement (créer les fichiers avec le  mode  0666)  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.

       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 (voir umask(2)) est
       correcte avant d’appeler mkstemp() (et mkostemp()).

       Le prototype de mktemp() se trouve dans <unistd.h> pour  libc4,  libc5,
       glibc1. Glibc2 suit POSIX.1 et possède le prototype dans <stdlib.h>.

VOIR AUSSI

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

COLOPHON

       Cette  page  fait  partie  de  la  publication 3.23 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 Florentin Duneau <fduneau@gmail.com> 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> ».