Provided by:
manpages-de-dev_0.10-1_all 
BEZEICHNUNG
mkstemp, mkostemp - eine einzigartige temporare Datei erstellen
"UBERSICHT
#include <stdlib.h>
int mkstemp(char *schablone);
int mkostemp (char *schablone, int schalter);
int mkstemps(char *schablone, int endungslaenge);
int mkostemps(char *schablone, int endungslaenge, int schalter);
Mit Glibc erforderliche Makros (siehe feature_test_macros(7)):
mkstemp():
_BSD_SOURCE || _SVID_SOURCE || _XOPEN_SOURCE >= 500 ||
_XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED
|| /* Seit Glibc 2.12: */ _POSIX_C_SOURCE >= 200112L
mkostemp(): _GNU_SOURCE
mkstemps(): _BSD_SOURCE || _SVID_SOURCE
mkostemps(): _GNU_SOURCE
BESCHREIBUNG
Die Funktion mkstemp() erstellt einen eindeutigen temporaren Dateinamen
aus schablone, erstellt und offnet die Datei und gibt einen Deskriptor
fur fur die offene Datei zuruck.
Die letzten sechs Zeichen von schablone mussen >>XXXXXX<< sein. Diese
werden durch eine Zeichenkette ersetzt, die den Dateinamen eindeutig
macht. Da sie verandert wird, darf schablone keine
Zeichenkettenkonstante sein, sondern als Zeichenfeld deklariert werden.
Diese Datei wird mit den Rechten 0600 erstellt, das heiBt, nur der
Besitzer darf sie lesen und schreiben. (In den Glibc-Versionen bis
einschlieBlich 2.06 wurde die Datei mit den Rechten 0666 erstellt, das
heiBt, alle Benutzer durfen sie lesen und schreiben.) Der
zuruckgegebene Dateideskriptor ist zum Lesen und Schreiben geoffnet.
Die Datei wird mit open(2) und dem Schalter O_EXCL geoffnet, was
gewahrleistet, dass die Datei vom aufrufenden Prozess erzeugt wurde.
Die Funktion mkostemp() unterscheidet sich von mkstemp() nur dadurch,
dass mit schalter zusatzliche Schalter, die open(2) betreffen, angeben
werden konnen (z.B. O_APPEND, O_SYNC).
Die Funktion mkstemps() unterscheidet sich von mkstemp() nur dadurch,
dass die Zeichenkette in schablone eine Endung von endungslaenge
Zeichen enthalt. Daher hat schablone die Form praefixXXXXXXendung und
die Zeichenkette XXXXXX wird wie fur mkstemp() verandert.
Die Funktion mkostemp() verhalt sich zu mkstemps() wie mkostemp() zu
mkstemp().
R"UCKGABEWERT
Bei Erfolg geben diese Funktionen den Dateideskriptor der temporaren
Datei zuruck. Im Fehlerfall wird -1 zuruckgegeben und errno
entsprechend gesetzt.
FEHLER
EEXIST Es konnte kein eindeutiger temporarer Dateiname erstellt werden.
Der Inhalt von schablone ist nun undefiniert.
EINVAL Fur mkstemp() und mkostemp(): Die letzten sechs Buchstaben von
schablone waren nicht XXXXXX;schablone ist unverandert.
Fur mkstemps() und mkostemps() ist schablone weniger als (6 +
endungslaenge) Zeichen lang oder die letzten 6 Zeichen vor der
Endung in schablone waren nicht XXXXXX.
Diese Funktionen konnten auch mit einem der fur open(2) beschriebenen
Fehler fehlschlagen.
VERSIONEN
mkostemp() ist seit Glibc 2.7 verfugbar. mkstemps() und mkostemps()
sind seit Glibc 2.11 verfugbar.
KONFORM ZU
mkstemp(): 4.3BSD, POSIX.1-2001.
mkstemps(): nicht standardisiert, erscheint aber auf mehreren anderen
Systemen
mkostemp() und mkostemps() sind Glibc-Erweiterungen.
ANMERKUNGEN
Das fruhere Verhalten, eine Datei mit den Zugriffsrechten 0666 zu
erstellen, konnte ein Sicherheitsrisiko darstellen, besonders seit
andere UNIX-Varianten 0600 benutzen und jemand diese Einzelheit bei der
Portierung von Programmen ubersehen konnte.
Allgemeiner ausgedruckt, sagt die POSIX-Spezifikation von mkstemp()
nichts uber die Dateimodi, daher sollte die Anwendung sicherstellen,
dass ihre Dateimodus-Erstellungsmaske (siehe umask(2)) vor dem Aufruf
von mkstemp() (und mkostemp()) entsprechend gesetzt ist.
Der Prototyp von mktemp() befindet sich fur Libc4, Libc5 und Glibc1 in
<unistd.h>. Glibc2 berucksichtigt POSIX.1 und hat den Prototyp in
<stdlib.h>.
SIEHE AUCH
mkdtemp(3), mktemp(3), tempnam(3), tmpfile(3), tmpnam(3)
KOLOPHON
Diese Seite ist Teil der Veroffentlichung 3.32 des Projekts
Linux-man-pages. Eine Beschreibung des Projekts und Informationen, wie
Fehler gemeldet werden konnen, finden sich unter
http://www.kernel.org/doc/man-pages/.
"UBERSETZUNG
Die deutsche Ubersetzung dieser Handbuchseite wurde von Andreas D.
Preissig <andreas@sanix.ruhr.de> und Chris Leick <c.leick@vollbio.de>
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 <debian-l10n-
german@lists.debian.org>.