tmpnam(3) Library Functions Manual tmpnam(3) BEZEICHNUNG tmpnam, tmpnam_r - einen Namen fur eine temporare Datei erzeugen BIBLIOTHEK Standard-C-Bibliothek (libc, -lc) UBERSICHT #include [[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 einschliesslich 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 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 definiert, genauso wie das im Folgenden erwahnte TMP_MAX. Die Funktion tmpnam_r() erledigt die gleiche Aufgabe wie tmpnam(), liefert aber NULL (um einen Fehler anzuzeigen) zuruck, falls s NULL ist. RUCKGABEWERT Diese Funktionen geben einen Zeiger auf den eindeutigen temporaren Dateinamen zuruck oder NULL, wenn kein eindeutiger Name generiert werden konnte. FEHLER Es sind keine Fehler definiert. ATTRIBUTE Siehe attributes(7) fur eine Erlauterung der in diesem Abschnitt verwandten Ausdrucke. +---------------+-------------------------+----------------------------+ |Schnittstelle | Attribut | Wert | +---------------+-------------------------+----------------------------+ |tmpnam() | Multithread-Fahigkeit | MT-Unsicher race:tmpnam/!s | +---------------+-------------------------+----------------------------+ |tmpnam_r() | Multithread-Fahigkeit | 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 ofter 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 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. FEHLER Benutzen Sie diese Funktionen niemals. Benutzen Sie stattdessen mkstemp(3) oder tmpfile(3). SIEHE AUCH mkstemp(3), mktemp(3), tempnam(3), tmpfile(3) UBERSETZUNG Die deutsche Ubersetzung dieser Handbuchseite wurde von Patrick Rother und Chris Leick 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 die Mailingliste der Ubersetzer . Linux man-pages 6.06 31. Oktober 2023 tmpnam(3)