Provided by: manpages-fr-dev_3.57d1p1-1_all bug

NOM

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

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   (consultez
   feature_test_macros(7)) :

       mkstemp() :
           _BSD_SOURCE || _SVID_SOURCE || _XOPEN_SOURCE >= 500 ||
           _XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED
           || /* Depuis la glibc 2.12 : */ _POSIX_C_SOURCE >= 200112L

       mkostemp() : _GNU_SOURCE
       mkstemps() : _BSD_SOURCE || _SVID_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 ait 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 unique. Le contenu template est imprévisible.

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

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

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

VERSIONS

       mkostemp() est disponible depuis la glibc 2.7. mkstemps() et mkostemps() sont  disponibles
       depuis la glibc 2.11.

CONFORMITÉ

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

       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.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).  Florentin  Duneau  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> ».