mkstemp   Début   Suivant   Sommaire   Préc.page.lue   Accueil
Section: Manuel du programmeur Linux (3)
Updated: 26 juillet 2007
Sommaire  



NOM   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil
mkstemp - Créér un fichier temporaire unique  



SYNOPSIS   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil
#include <stdlib.h>

int mkstemp (char *template);

Exigences de macros de test de fonctionalités pour la glibc (voir feature_test_macros(7)) :

mkstemp() : _BSD_SOURCE || _SVID_SOURCE || _XOPEN_SOURCE >= 500  




DESCRIPTION   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil
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 permissions 0666 jusqu'à la glibc 2.0.6, puis 0600 depuis la glibc 2.0.7. Comme il sera modifié, template ne doit pas être une chaîne constante, mais devrait être déclaré comme un tableau de caractères. Le fichier est ouvert avec l'attribut O_EXCL de open(2), garantissant que nous soyons le seul propriétaire du fichier.  



VALEUR RENVOYÉE   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil
La fonction mkstemp() renvoie le descripteur du fichier temporaire créé ou -1 si elle échoue, auquel cas errno contient le code d'erreur.  



ERREURS   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil
EEXIST
Impossible de créer un nom de fichier unique. Le contenu du fichier est imprévisible.
EINVAL
Les 6 derniers caractères de template ne sont pas XXXXXX. Dans ce cas, template n'est pas modifié.
 



CONFORMITÉ   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil
BSD 4.3, POSIX.1-2001.  



NOTES   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil
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 de l'umask est correcte avant d'appeler mkstemp().

Le prototype se trouve dans <unistd.h> pour libc4, libc5, glibc1 ; glibc2 suit POSIX.1 et place le prototype dans <stdlib.h>.  




VOIR AUSSI   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil
mkdtemp(3), mktemp(3), tempnam(3), tmpfile(3), tmpnam(3)  



TRADUCTION   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil

Ce document est une traduction réalisée par Christophe Blaess <http://www.blaess.fr/christophe/> le 5 novembre 1996 et révisée le 19 décembre 2007.

L'équipe de traduction a fait le maximum pour réaliser une adaptation française de qualité. La version anglaise la plus à jour de ce document est toujours consultable via la commande : « LANG=C man 3 mkstemp ». N'hésitez pas à signaler à l'auteur ou au traducteur, selon le cas, toute erreur dans cette page de manuel.


 



Sommaire   Début   Suivant   Sommaire   Préc.page.lue   Accueil
NOM
SYNOPSIS
DESCRIPTION
VALEUR RENVOYÉE
ERREURS
CONFORMITÉ
NOTES
VOIR AUSSI
TRADUCTION

Table des mots clés   Début   Suivant   Sommaire   Préc.page.lue   Accueil
EEXISTERREURS
EINVALERREURS



Ce document a été créé par man2html suivi de man2html.pl, le 17/10/2008 17:50:49, en utilisant les pages de 'man'.
 

Valid HTML 4.01 Transitional