TEMPNAM
Section: Manuel du programmeur Linux (3) Updated: 21 juillet 2003 Index
NOM
SYNOPSIS
DESCRIPTION
VALEUR RENVOYÉE
ERREURS
NOTES
BOGUES
CONFORMITÉ
VOIR AUSSI
TRADUCTION
NOM
tempnam - Créer un nom de fichier temporaire.
SYNOPSIS
#include <stdio.h>
char *tempnam (const char *rep, const char *préfixe);
DESCRIPTION
La fonction tempnam() renvoie un pointeur sur un nom de fichier
valide, en s'assurant qu'aucun fichier de ce nom n'existe au moment de
son invocation.
Le nom du fichier commencera par le
préfixe
si celui-ci n'est pas nul et contient jusqu'à cinq caractères.
Le chemin d'accès devant le nom du fichier sera obligatoirement "approprié"
(ce qui implique au minimum qu'on puisse y écrire).
L'ordre de recherche du répertoire pour placer
le fichier est le suivant :
(i) le répertoire indiqué par la variable d'environnement TMPDIR,
s'il est accessible en écriture,
(ii) le répertoire indiqué par l'argument rep, s'il n'est pas NULL,
(iii)le répertoire défini par P_tmpdir (dans
<stdio.h>)
(iv) finalement, un répertoire dépendant de l'implémentation ( /tmp par exemple).
VALEUR RENVOYÉE
La fonction tempnam() renvoie un pointeur sur un nom de fichier
unique, ou NULL si ce nom n'a pas pu être engendré.
ERREURS
- ENOMEM
-
Pas assez de mémoire libre.
- EEXIST
-
Impossible de créer un nom de fichier unique.
NOTES
SUSv2 ne mentionne pas l'utilisation de TMPDIR, la GlibC ne l'emploiera que
si le programme n'est pas Set-UID.
SVID2 indique que le répertoire pour le cas (iv) est
/tmp.
SVID2 précise que la chaîne renvoyée par
tempnam()
est allouée avec
malloc(3)
et doit donc être libérée avec
free(3).
La fonction
tempnam()
crée une chaîne différente à chaque fois qu'elle est appelée,
jusqu'à TMP_MAX (définie dans
<stdio.h>)
fois. Si on l'appelle plus de TMP_MAX fois,
le comportement dépend de l'implémentation.
Dans le cas où l'argument
préfixe
est plus long que cinq caractères, la GlibC n'utilisera que
les cinq premiers octets.
En cas d'échec pour créer un nom de fichier inexistant, la GlibC renverra l'erreur EEXIST.
BOGUES
La signification précise de "approprié" est indéfinie, la détermination des
conditions d'accessibilité à un répertoire n'est pas spécifiée.
N'utilisez pas cette fonction, utilisez
mkstemp(3)
à la place.
CONFORMITÉ
SVID 3, BSD 4.3
VOIR AUSSI
TRADUCTION
Christophe Blaess, 1996-2003.
|