Date création : 27-03-2008 20:23:44
 Vous êtes dans : GNU/Linux Astuces / Pages man [Section3 - Sous-fonctions]
TMPNAM
Index
- NOM
- SYNOPSIS
- DESCRIPTION
- VALEUR RENVOYÉE
- ERREURS
- NOTES
- BOGUES
- CONFORMITÉ
- VOIR AUSSI
- TRADUCTION
NOM
tmpnam, tmpnam_r - Créer un nom de fichier temporaire
SYNOPSIS
#include <stdio.h>
char *tmpnam (char *s);
DESCRIPTION
La fonction tmpnam() renvoie un pointeur sur une chaîne qui représente un
nom de fichier valide, qui n'existait pas il y a quelques instants. Ainsi,
un programmeur naïf peut croire qu'il s'agit d'un nom correct pour créer un
fichier temporaire. Si l'argument s est NULL, ce nom est stocké dans un
tampon interne qui pourra être écrasé lors du prochain appel à
tmpnam(). Si s est non NULL, le nom y est copié (le tampon doit faire
au moins L_tmpnam octets) et la valeur de s est renvoyée si la
fonction réussit.
Le nom de fichier qui est créé est préfixé par P_tmpdir. Les constantes
L_tmpnam et P_tmpdir sont définies dans <stdio.h> comme
TMP_MAX mentionné plus bas.
VALEUR RENVOYÉE
La fonction tmpnam() renvoie un pointeur sur un nom de fichier temporaire
unique, ou NULL si l'unicité n'a pas pu être assurée.
ERREURS
Aucune erreur n'est définie.
NOTES
La fonction tmpnam() engendre une nouvelle chaîne à chaque appel, jusqu'à
TMP_MAX fois. Si on l'invoque plus de TMP_MAX fois, le comportement dépend
de l'implémentation.
Bien que tmpnam(3) génère des noms difficiles à deviner, il est néanmoins
possible qu'entre le moment où tmpnam(3) a renvoyé un nom de fichier, et
le moment où le programme crée effectivement ce fichier, un autre programme
ait déjà créé ce fichier avec open(2) ou comme un lien symbolique. Ceci
peut occasionner des failles de sécurité. Pour éviter ces problèmes,
utilisez l'option O_EXCL d'open(2) lors de l'ouverture du fichier. Ou
mieux encore, utilisez mkstemp(3) ou tmpfile(3).
Les applications portables qui utilisent les threads ne peuvent pas appeler
tmpnam() avec un paramètre NULL si _POSIX_THREADS ou
_POSIX_THREAD_SAFE_FUNCTIONS sont définies.
Un brouillon POSIX proposait l'utilisation d'une fonction tmpnam_r()
définie par
char *tmpnam_r(char *s) {
return s ? tmpnam(s) : NULL;
}
apparemment comme une précaution pour ne pas utiliser NULL. Quelques
systèmes l'implémentent. Pour obtenir le prototype de la glibc, définir
_SVID_SOURCE ou _BSD_SOURCE avant d'inclure <stdio.h>.
BOGUES
N'utilisez jamais cette routine. Utilisez mkstemp(3) ou tmpfile(3) à
la place.
CONFORMITÉ
SVr4, BSD 4.3, C89, C99, POSIX.1-2001.
VOIR AUSSI
mkstemp(3), mktemp(3), tempnam(3), tmpfile(3)
TRADUCTION
Cette page de manuel a été traduite et mise à jour par
Christophe Blaess <http://www.blaess.fr/christophe/> entre 1996 et 2003,
puis par Alain Portal <aportal AT univ-montp2 DOT fr> jusqu'en 2006.
La traduction de cette page de manuel est basée sur les traductions
disponibles sur http://manpagesfr.free.fr/,
mais est gérée par l'équipe francophone de traduction de Debian
au travers de la liste de discussion debian-l10n-french.
Veuillez signaler toute erreur de traduction par un rapport de bogue sur
le paquet manpages-fr.
Vous pouvez toujours avoir accès à la version anglaise de ce document en
utilisant la commande
« man -L C <section> <page_de_man> ».
|