mktemp - Créer un nom de fichier temporaire unique
Bibliothèque C standard (
libc,
-lc)
#include <stdlib.h>
char *mktemp(char *template);
mktemp() :
Depuis la glibc 2.12 :
(_XOPEN_SOURCE >= 500) && ! (_POSIX_C_SOURCE >= 200112L)
|| /* glibc >= 2.19 : */ _DEFAULT_SOURCE
|| /* glibc <= 2.19 : */ _SVID_SOURCE || _BSD_SOURCE
Avant la glibc 2.12 :
_BSD_SOURCE || _SVID_SOURCE || _XOPEN_SOURCE >= 500
N'utilisez jamais cette fonction ; consultez la section
BOGUES.
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.
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
(c'est-à-dire qu’il n’existe pas déjà). Si
un nom unique ne peut être créé,
template est une
chaîne vide et
errno contient le code d'erreur.
- EINVAL
- Les 6 derniers caractères de template ne sont
pas XXXXXX.
Pour une explication des termes utilisés dans cette section, consulter
attributes(7).
Interface |
Attribut |
Valeur |
mktemp() |
Sécurité des threads |
MT-Safe |
4.3BSD, POSIX.1-2001. POSIX.1-2008 supprime la spécification de
mktemp().
Ne jamais utiliser
mktemp(). Certaines implémentations suivent
4.3BSD et remplacent XXXXXX par le numéro du processus et une lettre ce
qui donne un maximum de 26 noms différents qu'il est possible de
renvoyer. Comme d'une part ces noms sont faciles à deviner et que
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
risque de sécurité. Les conditions de concurrence sont
évitées par
mkstemp(3) et
mkdtemp(3).
mktemp(1),
mkdtemp(3),
mkstemp(3),
tempnam(3),
tmpfile(3),
tmpnam(3)
La traduction française de cette page de manuel a été
créée par Christophe Blaess
<
https://www.blaess.fr/christophe/>, Stéphan Rafin
<
[email protected]>, Thierry Vignaud
<
[email protected]>, François Micaux, Alain Portal
<
[email protected]>, Jean-Philippe Guérard
<
[email protected]>, Jean-Luc Coulon (f5ibh)
<
[email protected]>, Julien Cristau
<
[email protected]>, Thomas Huriaux <
[email protected]>,
Nicolas François <
[email protected]>, Florentin
Duneau <
[email protected]>, Simon Paillard
<
[email protected]>, Denis Barbier
<
[email protected]> et David Prévot <
[email protected]>
Cette traduction est une documentation libre ; veuillez vous reporter
à la
GNU
General Public License version 3 concernant les conditions de copie
et de distribution. Il n'y a aucune RESPONSABILITÉ LÉGALE.
Si vous découvrez un bogue dans la traduction de cette page de manuel,
veuillez envoyer un message à
[email protected]