mkstemp(3) Library Functions Manual mkstemp(3) NOM mkstemp, mkostemp, mkstemps, mkostemps - Creer un fichier temporaire unique BIBLIOTHEQUE Bibliotheque C standard (libc, -lc) SYNOPSIS #include 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 fonctionnalites 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, a partir du motif template, cree et ouvre le fichier, et renvoie un descripteur de fichier ouvert pour ce fichier. Les 6 derniers caracteres de template doivent etre XXXXXX, et ils seront remplaces par une chaine rendant le nom de fichier unique. Comme il sera modifie, template ne doit pas etre une chaine constante, mais un tableau de caracteres. Le fichier est cree en mode 0600, c'est-a-dire en lecture et ecriture pour le proprietaire seulement. Le descripteur de fichier renvoye fournit les acces en lecture et en ecriture sur le fichier. Le fichier est ouvert avec l'attribut O_EXCL de open(2), garantissant que l'appelant soit le processus qui a cree le fichier. La fonction mkostemp() agit comme mkstemp(), a la difference que les bits suivants -- avec la meme signification que pour open(2) -- peuvent etre definis dans flags : O_APPEND, O_CLOEXEC et O_SYNC. Remarquez qu'en creant le fichier, mkostemp() contient les valeurs O_RDWR, O_CREAT et O_EXCL dans l'argument flags donne a open(2) ; inclure ces valeurs dans l'argument flags donne a mkostemp() n'est pas necessaire et produit des erreurs sur certains systemes. La fonction mkstemps() agit comme mkstemp() sauf que la chaine dans template contient un suffixe de suffixlen caracteres. Ainsi, template est de la forme prefixeXXXXXXsuffixe et la chaine XXXXXX est modifiee comme dans mkstemp(). La fonction mkostemps() est a mkstemps() ce que mkostemp() est a mkstemp(). VALEUR RENVOYEE Si elles reussissent, ces fonctions renvoient le descripteur du fichier temporaire cree ou -1 si elles echouent, auquel cas errno contient le code d'erreur. ERREURS EEXIST Impossible de creer un nom de fichier temporaire unique. Le contenu template est alors imprevisible. EINVAL Pour mkstemp() et mkostemp() : les six derniers caracteres de template ne sont pas XXXXXX ; template n'est pas modifie. Pour mkstemps() et mkostemps() : template a une longueur inferieure a (6 + suffixlen), ou les six derniers caracteres avant le suffixe ne sont pas XXXXXX. Ces fonctions peuvent egalement echouer avec une des erreurs decrites pour open(2). ATTRIBUTS Pour une explication des termes utilises dans cette section, consulter attributes(7). +---------------------------------+--------------------------+---------+ |Interface | Attribut | Valeur | +---------------------------------+--------------------------+---------+ |mkstemp(), mkostemp(), | Securite des threads | MT-Safe | |mkstemps(), mkostemps() | | | +---------------------------------+--------------------------+---------+ 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 etait cree en mode 0666, c'est-a-dire en lecture et ecriture pour tous les utilisateurs. Cet ancien comportement est un trou de securite potentiel, surtout depuis que les autres derives UNIX utilisent le mode 0600, et quelqu'un risque d'oublier ce detail en effectuant un portage de programme. POSIX.1-2008 ajoute l'obligation de creer ce fichier en mode 0600. Plus generalement, la specification POSIX de mkstemp() ne dit rien des modes des fichiers, ainsi les applications doivent s'assurer que la valeur du masque de mode de creation 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 francaise de cette page de manuel a ete creee par Christophe Blaess , Stephan Rafin , Thierry Vignaud , Francois Micaux, Alain Portal , Jean-Philippe Guerard , Jean-Luc Coulon (f5ibh) , Julien Cristau , Thomas Huriaux , Nicolas Francois , Florentin Duneau , Simon Paillard , Denis Barbier et David Prevot Cette traduction est une documentation libre ; veuillez vous reporter a la GNU General Public License version 3 concernant les conditions de copie et de distribution. Il n'y a aucune RESPONSABILITE LEGALE. Si vous decouvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un message a . Pages du manuel de Linux 6.8 2 mai 2024 mkstemp(3)