"Fossies" - the Fresh Open Source Software archive 
Member "manpages-de-0.11/generated/man3/tmpnam.3" of archive manpages-de_0.11.orig.tar.gz:
Table of Contents
tmpnam, tmpnam_r - einen Namen für
eine temporäre Datei erzeugen
#include <stdio.h>
char *tmpnam(char *s);
Die Funktion tmpnam() gibt einen Zeiger auf eine Zeichenkette
zurück, die ein gültiger Dateiname ist, und sorgt dafür, dass zu diesem
Zeitpunkt keine Datei mit diesem Namen existiert, so dass ahnungslose Programmierer
denken könnten, es sei ein geeigneter Name für eine temporäre Datei. Falls
das Argument s NULL ist, wird dieser Name in einem statischen Puffer generiert
und könnte von nächsten tmpnam()-Aufruf überschrieben werden. Falls s nicht
NULL ist, wird der Name in das Zeichenfeld kopiert (das mindestens die
Länge L_tmpnam hat), auf das s zeigt. Im Erfolgsfall wird s zurückgegeben.
Der erzeugte Pfadname hat das Pfad-Präfix P_tmpdir. (Sowohl L_tmpnam als
auch P_tmpdir sind in <stdio.h> definiert, genauso wie das im Folgenden erwähnte
TMP_MAX.
Die Funktion tmpnam() gibt einen Zeiger auf den eindeutigen
temporären Dateinamen zurück oder NULL, wenn kein eindeutiger Name generiert
werden konnte.
Es sind keine Fehler definiert.
SVr4, 4.3BSD,
C89, C99, POSIX.1-2001. POSIX.1-2008 kennzeichnet tmpnam() als veraltet.
Die
Funktion tmpnam() generiert jedesmal, wenn sie aufgerufen wird, eine andere
Zeichenkette. Dies geschieht bis zu TMP_MAX Mal. Falls sie öfter 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
möglich, dass in der Zeit zwischen der Rückgabe des Pfadnamens und der
Zeit, in der er vom Programm geöffnet wird, ein anderes Programm einen
Pfadnamen mit open(2) erzeugt oder ihn als symbolischen Link erstellt. Dies
kann zu Sicherheitslücken führen. Um solche Möglichkeiten zu vermeiden,
benutzen Sie den Schalter O_EXCL von open(2), um diesen Pfadnamen zu öffnen
oder besser noch – benutzen Sie mkstemp(3) oder tmpfile(3).
Portierbare
Anwendungen, die Threads benutzen, können tmpnam() nicht mit einem Argument
aufrufen, das NULL ist, wenn entweder _POSIX_THREADS oder _POSIX_THREAD_SAFE_FUNCTIONS
definiert sind.
Ein ursprünglicher 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 für diese Version von <stdio.h> zu bekommen,
definieren Sie _SVID_SOURCE oder _BSD_SOURCE (vor dem Einbinden irgendeiner
Header-Datei).
Benutzen Sie diese Funktion niemals. Benutzen Sie stattdessen
mkstemp(3) oder tmpfile(3).
mkstemp(3), mktemp(3), tempnam(3),
tmpfile(3)
Diese Seite ist Teil der Veröffentlichung 3.35 des Projekts
Linux-man-pages. Eine Beschreibung des Projekts und Informationen, wie Fehler
gemeldet werden können, finden sich unter http://man7.org/linux/man-pages/.
Die deutsche Übersetzung dieser Handbuchseite wurde von Patrick
Rother <krd@gulu.net> und Chris Leick <c.leick@vollbio.de> erstellt.
Diese Übersetzung
ist Freie Dokumentation; lesen Sie die GNU General Public License Version
3 oder neuer bezüglich der Copyright-Bedingungen. Es wird KEINE HAFTUNG übernommen.
Wenn Sie Fehler in der Übersetzung dieser Handbuchseite finden, schicken
Sie bitte eine E-Mail an <debian-l10n-german@lists.debian.org>.
Table of Contents