Provided by: manpages-de-dev_0.10-1_all bug

BEZEICHNUNG

       tmpnam, tmpnam_r - einen Namen für eine temporäre Datei erzeugen

ÜBERSICHT

       #include <stdio.h>

       char *tmpnam(char *s);

BESCHREIBUNG

       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.

RÜCKGABEWERT

       Die  Funktion tmpnam() gibt einen Zeiger auf den eindeutigen temporären
       Dateinamen zurück 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
       ö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).

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  Veröffentlichung  3.32  des  Projekts
       Linux-man-pages. Eine Beschreibung des Projekts und Informationen,  wie
       Fehler     gemeldet     werden     können,     finden     sich    unter
       http://www.kernel.org/doc/man-pages/.

ÜBERSETZUNG

       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>.

                              10. September 2010                     TMPNAM(3)