Provided by:
manpages-de-dev_0.10-1_all 
BEZEICHNUNG
tmpnam, tmpnam_r - einen Namen fur eine temporare Datei erzeugen
"UBERSICHT
#include <stdio.h>
char *tmpnam(char *s);
BESCHREIBUNG
Die Funktion tmpnam() gibt einen Zeiger auf eine Zeichenkette zuruck,
die ein gultiger Dateiname ist, und sorgt dafur, dass zu diesem
Zeitpunkt keine Datei mit diesem Namen existiert, so dass ahnungslose
Programmierer denken konnten, es sei ein geeigneter Name fur eine
temporare Datei. Falls das Argument s NULL ist, wird dieser Name in
einem statischen Puffer generiert und konnte von nachsten
tmpnam()-Aufruf uberschrieben werden. Falls s nicht NULL ist, wird der
Name in das Zeichenfeld kopiert (das mindestens die Lange L_tmpnam
hat), auf das s zeigt. Im Erfolgsfall wird s zuruckgegeben.
Der erzeugte Pfadname hat das Pfad-Prafix P_tmpdir. (Sowohl L_tmpnam
als auch P_tmpdir sind in <stdio.h> definiert, genauso wie das im
Folgenden erwahnte TMP_MAX.
R"UCKGABEWERT
Die Funktion tmpnam() gibt einen Zeiger auf den eindeutigen temporaren
Dateinamen zuruck oder NULL, wenn kein eindeutiger Name generiert
werden konnte.
FEHLER
Es sind keine Fehler definiert.
KONFORM ZU
SVr4, 4.3BSD, C89, C99, POSIX.1-2001. POSIX.1-2008 kennzeichnet
tmpnam() als veraltet.
ANMERKUNGEN
Die Funktion tmpnam() generiert jedesmal, wenn sie aufgerufen wird,
eine andere Zeichenkette. Dies geschieht bis zu TMP_MAX Mal. Falls sie
ofter als TMP_MAX Mal aufgerufen wird, wird ihr Verhalten durch die
Implementierung definiert.
Obwohl tmpnam() Namen generiert, die schwer zu erahnen sind, ist es
dennoch moglich, dass in der Zeit zwischen der Ruckgabe des Pfadnamens
und der Zeit, in der er vom Programm geoffnet wird, ein anderes
Programm einen Pfadnamen mit open(2) erzeugt oder ihn als symbolischen
Link erstellt. Dies kann zu Sicherheitslucken fuhren. Um solche
Moglichkeiten zu vermeiden, benutzen Sie den Schalter O_EXCL von
open(2), um diesen Pfadnamen zu offnen oder besser noch - benutzen Sie
mkstemp(3) oder tmpfile(3).
Portierbare Anwendungen, die Threads benutzen, konnen tmpnam() nicht
mit einem Argument aufrufen, das NULL ist, wenn entweder _POSIX_THREADS
oder _POSIX_THREAD_SAFE_FUNCTIONS definiert sind.
Ein ursprunglicher POSIX-Entwurf schlug eine tmpnam_r()-Funktion vor,
die definiert wurde wie folgt
char *
tmpnam_r(char *s)
{
return s ? tmpnam(s) : NULL;
}
scheinbar als Warnung nicht NULL zu benutzen. Einige Systeme
implementierten das. Um einen Glibc-Prototypen fur diese Version von
<stdio.h> zu bekommen, definieren Sie _SVID_SOURCE oder _BSD_SOURCE
(vor dem Einbinden irgendeiner Header-Datei).
FEHLER
Benutzen Sie diese Funktion niemals. Benutzen Sie stattdessen
mkstemp(3) oder tmpfile(3).
SIEHE AUCH
mkstemp(3), mktemp(3), tempnam(3), tmpfile(3)
KOLOPHON
Diese Seite ist Teil der Veroffentlichung 3.32 des Projekts
Linux-man-pages. Eine Beschreibung des Projekts und Informationen, wie
Fehler gemeldet werden konnen, finden sich unter
http://www.kernel.org/doc/man-pages/.
"UBERSETZUNG
Die deutsche Ubersetzung dieser Handbuchseite wurde von Patrick Rother
<krd@gulu.net> und Chris Leick <c.leick@vollbio.de> erstellt.
Diese Ubersetzung ist Freie Dokumentation; lesen Sie die GNU General
Public License Version 3 oder neuer bezuglich der Copyright-
Bedingungen. Es wird KEINE HAFTUNG ubernommen.
Wenn Sie Fehler in der Ubersetzung dieser Handbuchseite finden,
schicken Sie bitte eine E-Mail an <debian-l10n-
german@lists.debian.org>.
10. September 2010 TMPNAM(3)