Provided by: manpages-de-dev_1.4-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.

ATTRIBUTE

   Multithreading (siehe pthreads(7))
       Die  Funktion  tmpnam()  ist  mit  einigen  Ausnahmen  Thread-sicher.  Falls sie mit einem
       NULL-Parameter aufgerufen wird, ist sie nicht Thread-sicher.

       Die Funktion tmpnam_r() ist nicht Thread-sicher.

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

       This page is part of release 3.54 of the Linux man-pages project.  A  description  of  the
       project,     and    information    about    reporting    bugs,    can    be    found    at
       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>.

                                          21. Juni 2013                                 TMPNAM(3)