1. NOM▲
mktemp - Créer un nom de fichier temporaire unique
2. SYNOPSIS ▲
#include <stdlib.h>
char
*
mktemp
(
char
*
template);
Exigences de macros de test de fonctionnalités pour la glibc (consultez feature_test_macros(7)) :
mktemp() :
- Depuis la glibc 2.12 :
_BSD_SOURCE || _SVID_SOURCE || (_XOPEN_SOURCE >= 500 || _XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED) && !(_POSIX_C_SOURCE >= 200112L || _XOPEN_SOURCE >= 600) - Avant la glibc 2.12 :
_BSD_SOURCE || _SVID_SOURCE || _XOPEN_SOURCE >= 500 || _XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED
3. DESCRIPTION ▲
La fonction mktemp() crée un nom de fichier temporaire unique, en utilisant le motif template. 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.
4. VALEUR RENVOYÉE ▲
La fonction mktemp() renvoie toujours template. Si un nom unique est crée, les six derniers octets de template seront modifiés afin que le nom résultant soit unique. Si un nom unique ne peut être créé, template est une chaîne vide et errno contient le code d'erreur.
5. ERREURS ▲
- EINVAL
Les 6 derniers caractères de template ne sont pas XXXXXX.
6. CONFORMITÉ ▲
BSD 4.3, POSIX.1-2001. POSIX.1-2008 supprime la spécification de mktemp().
7. NOTES ▲
Le prototype se trouve dans <unistd.h> pour libc4, libc5, glibc1. glibc2 suit les spécifications Single UNIX et place le prototype dans <stdlib.h>.
8. BOGUES ▲
Évitez d'utiliser mktemp(). Certaines implémentations suivent BSD 4.3, et remplacent XXXXXX par le numéro du processus et une lettre, ce qui donne 26 noms différents possibles. Comme d'une part ces noms sont faciles à deviner, et d'autre part il existe une condition de concurrence entre le test d'existence du nom et l'ouverture du fichier, chaque invocation de mktemp() est un trou de sécurité. Les conditions de concurrences sont évitées par mkstemp(3).
9. VOIR AUSSI ▲
10. COLOPHON ▲
Cette page fait partie de la publication 3.52 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/.
11. 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 à <>.
Vous pouvez toujours avoir accès à la version anglaise de ce document en utilisant la commande « LC_ALL=C man <section> <page_de_man> ».