MKSTEMP
Section: Manuel du programmeur Linux (3) Updated: 21 juillet 2003 Index
NOM
SYNOPSIS
DESCRIPTION
VALEUR RENVOYÉE
ERREURS
NOTES
CONFORMITÉ
NOTE
VOIR AUSSI
TRADUCTION
NOM
mkstemp - Créér un fichier temporaire unique.
SYNOPSIS
#include <stdlib.h>
int mkstemp (char *template);
DESCRIPTION
La fonction mkstemp() engendre un nom de fichier temporaire unique,
à partir du motif template. Les six derniers caractères de template
doivent être XXXXXX et ils seront alors remplacés par une chaîne rendant
ce nom de fichier unique. Le fichier est créé avec les permission 0666 jusqu'à
la GlibC 2.0.6, puis 0600 depuis la Glib 2.0.7.
Comme il sera modifié,
template
ne doit pas être une chaîne constante, mais comme un tableau de caractères.
Le fichier est ouvert avec l'attribut O_EXCL, garantissant que nous
soyons le seul propriétaire du fichier.
VALEUR RENVOYÉE
La fonction mkstemp() renvoie le descripteur du fichier temporaire
créé ou -1 en cas d'erreur.
ERREURS
- EINVAL
-
Les 6 derniers caractères de template ne sont pas XXXXXX.
Dans ce cas, template n'est pas modifié.
- EEXIST
-
Impossible de créer un nom de fichier unique. Le contenu du
fichier est imprévisible.
NOTES
L'ancien comportement (créer les fichiers avec le mode 0666) 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.
Plus généralement, les spécifications POSIX ne disent rien des modes
des fichiers, ainsi les applications doivent s'assurer que la valeur
d'umask est correcte avant d'appeler
mkstemp.
CONFORMITÉ
BSD 4.3, POSIX 1003.1-2001
NOTE
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>.
VOIR AUSSI
TRADUCTION
Christophe Blaess, 1996-2003.
|