Scroll to navigation

MKTEMP(3) Linux-Programmierhandbuch MKTEMP(3)

BEZEICHNUNG

mktemp - erzeugt einen eindeutigen temporären Dateinamen

ÜBERSICHT

#include <stdlib.h>
 
char *mktemp(char *template);
 

Mit Glibc erforderliche Makros (siehe feature_test_macros(7)):
 
mktemp():
Seit Glibc 2.12:
_BSD_SOURCE || _SVID_SOURCE ||
(_XOPEN_SOURCE >= 500 ||
_XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED) &&
!(_POSIX_C_SOURCE >= 200112L || _XOPEN_SOURCE >= 600)
Bis Glibc 2.12:
_BSD_SOURCE || _SVID_SOURCE || _XOPEN_SOURCE >= 500 || _XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED

BESCHREIBUNG

Die Funktion mktemp() erzeugt einen eindeutigen, temporären Dateinamen. Dieser Name wird aus template erzeugt, dessen letzte sechs Buchstaben XXXXXX sein müssen. Sie werden durch eine Zeichenfolge ersetzt, die diesen Dateinamen eindeutig macht. Weil template verändert wird, darf es keine keine konstante Zeichenkette (string constant) sein, sondern sollte als Zeichenfeld (character array) deklariert sein.

RÜCKGABEWERT

Die Funktion mktemp() gibt immer template zurück. Bei erfolgreicher Ausführung wurden die letzten sechs Byte von template so verändert, dass daraus ein eindeutiger (also nicht schon vorhandener) Name wurde. Hatte der Aufruf keinen Erfolg, wird template in eine leere Zeichenkette umgewandelt.

FEHLER

EINVAL
Die letzten sechs Buchstaben von template waren nicht XXXXXX.

KONFORM ZU

4.3BSD, POSIX.1-2001. POSIX.1-2008 entfernt die Spezifikation von mktemp().

ANMERKUNGEN

Der Funktionsprototyp ist in libc4, libc5 und glibc1 in <unistd.h> enthalten. Glibc2 folgt der Single UNIX Specification. Dort enthält <stdlib.h> den Prototypen.

FEHLER

Verwenden Sie mktemp() niemals. Einige Implementierungen folgen 4.3BSD und ersetzen XXXXXX durch die aktuelle Prozess-ID und einen einzelnen Buchstaben, so dass maximal 26 unterschiedliche Namen zurückgegeben werden können. Da einerseits die Namen einfach zu erraten sind und es andererseits einen Wettlauf zwischen der Prüfung, ob der Name existiert, und dem Öffnen der Datei gibt, ist jeder Einsatz von mktemp() ein Sicherheitsrisiko. Der Wettlauf wird von mkstemp(3) vermieden.

SIEHE AUCH

mkstemp(3), tempnam(3), tmpfile(3), tmpnam(3)

KOLOPHON

Diese Seite ist Teil der Veröffentlichung 3.42 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 Andreas D. Preissig <andreas@sanix.ruhr.de> und Martin Eberhard Schauer <Martin.E.Schauer@gmx.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>.
20. September 2010 GNU