Provided by: manpages-de-dev_4.23.1-1_all bug

BEZEICHNUNG

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

BIBLIOTHEK

       Standard-C-Bibliothek (libc, -lc)

ÜBERSICHT

       #include <stdio.h>

       [[veraltet]] char *tmpnam(char *s);
       [[veraltet]] char *tmpnam_r(char *s);

   Mit Glibc erforderliche Feature-Test-Makros (siehe feature_test_macros(7)):

       tmpnam_r()
           Seit Glibc 2.19:
               _DEFAULT_SOURCE
           Bis zu einschließlich Glibc 2.19:
               _BSD_SOURCE || _SVID_SOURCE

BESCHREIBUNG

       Hinweis:  Vermeiden  Sie  die  Verwendung  dieser  Funktionen;  verwenden  Sie stattdessen
       mkstemp(3) oder tmpfile(3).

       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_r() erledigt die gleiche Aufgabe wie tmpnam(), liefert aber NULL (um
       einen Fehler anzuzeigen) zurück, falls s NULL ist.

RÜCKGABEWERT

       Diese Funktionen geben 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

       Siehe attributes(7) für eine Erläuterung der in diesem Abschnitt verwandten Ausdrücke.

       ┌────────────────────────────────────┬───────────────────────┬────────────────────────────┐
       │SchnittstelleAttributWert                       │
       ├────────────────────────────────────┼───────────────────────┼────────────────────────────┤
       │tmpnam()                            │ Multithread-Fähigkeit │ MT-Unsicher race:tmpnam/!s │
       ├────────────────────────────────────┼───────────────────────┼────────────────────────────┤
       │tmpnam_r()                          │ Multithread-Fähigkeit │ MT-Sicher                  │
       └────────────────────────────────────┴───────────────────────┴────────────────────────────┘

STANDARDS

       tmpnam()
              C11, POSIX.1-2008.

       tmpnam_r()
              Keine.

GESCHICHTE

       tmpnam()
              SVr4, 4.3BSD, C89, POSIX.1-2001. Veraltet in POSIX.1-2008.

       tmpnam_r()
              Solaris.

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

FEHLER

       Benutzen  Sie  diese  Funktionen  niemals.  Benutzen  Sie  stattdessen   mkstemp(3)   oder
       tmpfile(3).

SIEHE AUCH

       mkstemp(3), mktemp(3), tempnam(3), tmpfile(3)

Ü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 ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩ 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 die Mailingliste der Übersetzer ⟨debian-l10n-german@lists.debian.org⟩.