Provided by:
manpages-fr-dev_3.27fr1.4-1_all 
NOM
mkstemp, mkostemp - Creer un fichier temporaire unique
SYNOPSIS
#include <stdlib.h>
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 (consultez
feature_test_macros(7)) :
mkstemp() :
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
mkostemp() : _GNU_SOURCE
mkstemps() : _BSD_SOURCE || _SVID_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 avec les permissions 0600, c'est-a-dire lecture et
ecriture pour le proprietaire seulement (dans la version 2.06 de la
glibc et anterieures, le fichier etait cree avec les permissions 0666,
c'est-a-dire lecture et ecriture pour tous les utilisateurs). 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 ait cree
le fichier.
La fonction mkostemp() agit comme mkstemp(), a la difference que les
attributs, comme pour open(2), peuvent etre definis dans flags
(c'est-a-dire, O_APPEND, O_SYNC).
La fonction mkstemps() agit comme mkstemp(), sauf que la chaine dans
template contient un suffixe de suffixlen caracteres. Ainsi, template
est de la forme pr'efixeXXXXXXsuffixe, et la chaine XXXXXX est modifiee
comme dans mkstemp().
La fonction mkostemps() est a mkstemps() ce que mkostemp() est a
mkstemp().
VALEUR RENVOY'EE
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 unique. Le contenu
template est imprevisible.
EINVAL Pour mkstemp() and mkostemp() : les six derniers caracteres de
template ne sont pas XXXXXX ; template n'est pas modifiee.
Pour mkstemps() et mkostemps() : template a une longueur
inferieure a (6 + suffixlen), ou les 6 derniers caracteres avant
le suffixe ne sont pas XXXXXX.
Ces fonctions peuvent egalement echouer avec chacune des erreurs
decrites pour open(2).
VERSIONS
mkostemp() est disponible depuis la glibc 2.7. mkstemps() et
mkostemps() sont disponibles depuis la glibc 2.11.
CONFORMIT'E
mkstemp() : 4.3BSD, POSIX.1-2001.
mkstemps() : non standard, mais existe sur plusieurs autres systemes.
mkostemp() et mkostemps() sont des extensions de la glibc.
NOTES
L'ancien comportement (creer les fichiers avec le mode 0666) 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.
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()).
Le prototype de mktemp() se trouve dans <unistd.h> pour libc4, libc5,
glibc1. Glibc2 suit POSIX.1 et possede le prototype dans <stdlib.h>.
VOIR AUSSI
mkdtemp(3), mktemp(3), tempnam(3), tmpfile(3), tmpnam(3)
COLOPHON
Cette page fait partie de la publication 3.27 du projet man-pages
Linux. Une description du projet et des instructions pour signaler des
anomalies peuvent etre trouvees a l'adresse
<URL:http://www.kernel.org/doc/man-pages/>.
TRADUCTION
Depuis 2010, cette traduction est maintenue a l'aide de l'outil po4a
<URL:http://po4a.alioth.debian.org/> par l'equipe de traduction
francophone au sein du projet perkamon
<URL:http://perkamon.alioth.debian.org/>.
Christophe Blaess <URL:http://www.blaess.fr/christophe/> (1996-2003),
Alain Portal <URL:http://manpagesfr.free.fr/> (2003-2006). Florentin
Duneau et l'equipe francophone de traduction de Debian (2006-2009).
Veuillez signaler toute erreur de traduction en ecrivant a
<debian-l10n-french@lists.debian.org> ou par un rapport de bogue sur le
paquet manpages-fr.
Vous pouvez toujours avoir acces a la version anglaise de ce document
en utilisant la commande << man -L C <section> <page_de_man> >>.