Man page - tempnam(3)

Packages contains this manual

Available languages:

en fr ja ru ro

Manual

tempnam

NOM
BIBLIOTHÈQUE
SYNOPSIS
DESCRIPTION
VALEUR RENVOYÉE
ERREURS
ATTRIBUTS
STANDARDS
HISTORIQUE
NOTES
BOGUES
VOIR AUSSI
TRADUCTION

NOM

tempnam - Créer un nom de fichier temporaire

BIBLIOTHÈQUE

BibliothĂšque C standard ( libc , -lc )

SYNOPSIS

#include <stdio.h>

char *tempnam(const char * rép , const char * préfixe );

Exigences de macros de test de fonctionnalités pour la glibc (consulter feature_test_macros (7)) :

tempnam ():
Depuis la glibc 2.19 :
_DEFAULT_SOURCE
glibc 2.19 et antérieures :
_BSD_SOURCE || _SVID_SOURCE

DESCRIPTION

N’utilisez jamais cette fonction . Utilisez mkstemp (3) ou tmpfile (3) à la place.

La fonction tempnam () renvoie un pointeur sur un nom de fichier valable en s’assurant qu’aucun fichier de ce nom n’existe au moment de son invocation. Le nom du fichier commence par le prĂ©fixe si celui-ci n’est pas NULL 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 :

a)

Le rĂ©pertoire indiquĂ© par la variable d’environnement TMPDIR , si elle existe et contient le nom d’un rĂ©pertoire « approprié ».

b)

Sinon, le rĂ©pertoire indiquĂ© par l’argument rĂ©p , s’il n’est pas NULL et est « approprié ».

c)

Sinon, le rĂ©pertoire dĂ©fini par P_tmpdir (dans <stdio.h> ) s’il est « approprié ».

d)

Enfin, un rĂ©pertoire dĂ©pendant de l’implĂ©mentation ( /tmp par exemple).

La chaĂźne renvoyĂ©e par tempnam () est allouĂ©e avec malloc (3) et doit donc ĂȘtre libĂ©rĂ©e avec free (3).

VALEUR RENVOYÉE

Si l’exĂ©cution rĂ©ussit, la fonction tempnam () renvoie un pointeur sur un nom de fichier temporaire unique. Elle renvoie NULL si un nom unique n’a pas pu ĂȘtre gĂ©nĂ©rĂ©, et errno contient le code d’erreur.

ERREURS

ENOMEM

Échec de l’allocation de mĂ©moire.

ATTRIBUTS

Pour une explication des termes utilisés dans cette section, consulter attributes (7).

Image grohtml-3866387-1.png

STANDARDS

POSIX.1-2008.

HISTORIQUE

SVr4, 4.3BSD, POSIX.1-2001. ObsolĂšte dans POSIX.1-2008.

NOTES

Bien que tempnam () gĂ©nĂšre des noms difficiles Ă  deviner, il est nĂ©anmoins possible qu’entre le moment oĂč tempnam () 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. Cela 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).

SUSv2 ne mentionne pas l’utilisation de TMPDIR , la glibc ne l’emploiera que si le programme n’est pas setuid. SVr4 indique que le rĂ©pertoire pour d) est /tmp (ce qui correspond Ă  ce que fait la glibc).

Comme la mémoire utilisée pour le nom du fichier est allouée dynamiquement, tempnam () est réentrante, et donc sûre dans un contexte multithread, contrairement à tmpnam (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.

tempnam () utilise au plus les cinq premiers octets de préfixe .

L’implĂ©mentation de tempnam () de la glibc Ă©choue avec l’erreur EEXIST lors de l’échec de la recherche d’un nom unique.

BOGUES

La signification prĂ©cise d’« approprié » est indĂ©finie, la dĂ©termination des conditions d’accessibilitĂ© Ă  un rĂ©pertoire n’est pas spĂ©cifiĂ©e.

VOIR AUSSI

mkstemp (3), mktemp (3), tmpfile (3), tmpnam (3)

TRADUCTION

La traduction française de cette page de manuel a été créée par Christophe Blaess <https://www.blaess.fr/christophe/>, Stéphan Rafin <stephan.rafin@laposte.net>, Thierry Vignaud <tvignaud@mandriva.com>, François Micaux, Alain Portal <aportal@univ-montp2.fr>, Jean-Philippe Guérard <fevrier@tigreraye.org>, Jean-Luc Coulon (f5ibh) <jean-luc.coulon@wanadoo.fr>, Julien Cristau <jcristau@debian.org>, Thomas Huriaux <thomas.huriaux@gmail.com>, Nicolas François <nicolas.francois@centraliens.net>, Florentin Duneau <fduneau@gmail.com>, Simon Paillard <simon.paillard@resel.enst-bretagne.fr>, Denis Barbier <barbier@debian.org>, David Prévot <david@tilapin.org> et Frédéric Hantrais <fhantrais@gmail.com>

Cette traduction est une documentation libre ; veuillez vous reporter à la GNU General Public License version 3 concernant les conditions de copie et de distribution. Il n’y a aucune RESPONSABILITÉ LÉGALE.

Si vous découvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un message à debian-l10n-french@lists.debian.org .