Provided by: manpages-fr-dev_3.65d1p1-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.65 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> ».

GNU                                             28 décembre 2013                                      MKSTEMP(3)