tmpnam | Début | Suivant | Sommaire | Préc.page.lue | Accueil |
NOM | Début | Précédent | Suivant | Sommaire | Préc.page.lue | Accueil |
SYNOPSIS | Début | Précédent | Suivant | Sommaire | Préc.page.lue | Accueil |
#include <stdio.h> char *tmpnam (char *s);
DESCRIPTION | Début | Précédent | Suivant | Sommaire | Préc.page.lue | Accueil |
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 | Début | Précédent | Suivant | Sommaire | Préc.page.lue | Accueil |
ERREURS | Début | Précédent | Suivant | Sommaire | Préc.page.lue | Accueil |
CONFORMITÉ | Début | Précédent | Suivant | Sommaire | Préc.page.lue | Accueil |
NOTES | Début | Précédent | Suivant | Sommaire | Préc.page.lue | Accueil |
Bien que tmpnam() génère des noms qui soient dificiles à deviner, il est néanmoins possible qu'entre le moment où tmpnam() renvoie le nom du chemin et le moment où le programme l'ouvre, un autre programme a pu créer ce même nom de chemin avec open(2), ou l'avoir créer sous forme de lien symbolique. Cela peut conduire à des trous de sécurité. Pour éviter de telles possibilités, utilisez l'attribut O_EXCL de open(2) pour ouvrir le nom du chemin. Ou encore mieux, 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 glibc de cette fonction, définir _SVID_SOURCE ou _BSD_SOURCE avant d'inclure <stdio.h>.
BOGUES | Début | Précédent | Suivant | Sommaire | Préc.page.lue | Accueil |
VOIR AUSSI | Début | Précédent | Suivant | Sommaire | Préc.page.lue | Accueil |
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 2 décembre 1996 et révisée le 6 juin 2008.
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 tmpnam ». 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 |