.\" -*- coding: UTF-8 -*- .\" Copyright 1993 David Metcalfe (david@prism.demon.co.uk) .\" and Copyright (C) 2008, Michael Kerrisk .\" .\" Permission is granted to make and distribute verbatim copies of this .\" manual provided the copyright notice and this permission notice are .\" preserved on all copies. .\" .\" Permission is granted to copy and distribute modified versions of this .\" manual under the conditions for verbatim copying, provided that the .\" entire resulting derived work is distributed under the terms of a .\" permission notice identical to this one. .\" .\" Since the Linux kernel and libraries are constantly changing, this .\" manual page may be incorrect or out-of-date. The author(s) assume no .\" responsibility for errors or omissions, or for damages resulting from .\" the use of the information contained herein. The author(s) may not .\" have taken the same level of care in the production of this manual, .\" which is licensed free of charge, as they might when working .\" professionally. .\" .\" Formatted or processed versions of this manual, if unaccompanied by .\" the source, must acknowledge the copyright and authors of this work. .\" .\" References consulted: .\" Linux libc source code .\" Lewine's _POSIX Programmer's Guide_ (O'Reilly & Associates, 1991) .\" 386BSD man pages .\" Modified Sat Jul 24 18:48:48 1993 by Rik Faith (faith@cs.unc.edu) .\" Modified 980310, aeb .\" Modified 990328, aeb .\" 2008-06-19, mtk, Added mkostemp(); various other changes .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH MKSTEMP 3 "21. April 2012" GNU Linux\-Programmierhandbuch .SH BEZEICHNUNG mkstemp, mkostemp, mkstemps, mkostemps \- eine einzigartige temporäre Datei erstellen .SH ÜBERSICHT .nf \fB#include \fP .sp \fBint mkstemp(char *\fP\fIschablone\fP\fB);\fP .sp \fBint mkostemp(char *\fP\fIschablone\fP\fB, int \fP\fIschalter\fP\fB);\fP .sp \fBint mkstemps(char *\fP\fIschablone\fP\fB, int \fP\fIendungslaenge\fP\fB);\fP .sp \fBint mkostemps(char *\fP\fIschablone\fP\fB, int \fP\fIendungslaenge\fP\fB, int \fP\fIschalter\fP\fB);\fP .fi .sp .in -4n Mit Glibc erforderliche Makros (siehe \fBfeature_test_macros\fP(7)): .in .sp \fBmkstemp\fP(): .ad l .RS 4 .PD 0 _BSD_SOURCE || _SVID_SOURCE || _XOPEN_SOURCE\ >=\ 500 || _XOPEN_SOURCE\ &&\ _XOPEN_SOURCE_EXTENDED .br || /* Seit Glibc 2.12: */ _POSIX_C_SOURCE\ >=\ 200112L .PD .RE .ad b .PP \fBmkostemp\fP(): _GNU_SOURCE .br \fBmkstemps\fP(): _BSD_SOURCE || _SVID_SOURCE .br \fBmkostemps\fP(): _GNU_SOURCE .SH BESCHREIBUNG Die Funktion \fBmkstemp\fP() erstellt einen eindeutigen temporären Dateinamen aus \fIschablone\fP, erstellt und öffnet die Datei und gibt einen Deskriptor für für die offene Datei zurück. Die letzten sechs Zeichen von \fIschablone\fP müssen »XXXXXX« sein. Diese werden durch eine Zeichenkette ersetzt, die den Dateinamen eindeutig macht. Da sie verändert wird, darf \fIschablone\fP keine Zeichenkettenkonstante sein, sondern als Zeichenfeld deklariert werden. Diese Datei wird mit den Rechten 0600 erstellt, das heißt, nur der Besitzer darf sie lesen und schreiben. (In den Glibc\-Versionen bis einschließlich 2.06 wurde die Datei mit den Rechten 0666 erstellt, das heißt, alle Benutzer dürfen sie lesen und schreiben.) Der zurückgegebene Dateideskriptor ist zum Lesen und Schreiben geöffnet. Die Datei wird mit \fBopen\fP(2) und dem Schalter \fBO_EXCL\fP geöffnet, was gewährleistet, dass die Datei vom aufrufenden Prozess erzeugt wurde. Die Funktion \fBmkostemp\fP() unterscheidet sich von \fBmkstemp\fP() nur dadurch, dass mit \fIschalter\fP zusätzliche Schalter, die \fBopen\fP(2) betreffen, angeben werden können (z.B. \fBO_APPEND\fP, \fBO_SYNC\fP). Die Funktion \fBmkstemps\fP() unterscheidet sich von \fBmkstemp\fP() nur dadurch, dass die Zeichenkette in \fIschablone\fP eine Endung von \fIendungslaenge\fP Zeichen enthält. Daher hat \fIschablone\fP die Form \fIpraefixXXXXXXendung\fP und die Zeichenkette XXXXXX wird wie für \fBmkstemp\fP() verändert. Die Funktion \fBmkostemp\fP() verhält sich zu \fBmkstemps\fP() wie \fBmkostemp\fP() zu \fBmkstemp\fP(). .SH RÜCKGABEWERT Bei Erfolg geben diese Funktionen den Dateideskriptor der temporären Datei zurück. Im Fehlerfall wird \-1 zurückgegeben und \fIerrno\fP entsprechend gesetzt. .SH FEHLER .TP \fBEEXIST\fP Es konnte kein eindeutiger temporärer Dateiname erstellt werden. Der Inhalt von \fIschablone\fP ist nun undefiniert. .TP \fBEINVAL\fP Für \fBmkstemp\fP() und \fBmkostemp\fP(): Die letzten sechs Buchstaben von \fIschablone\fP waren nicht XXXXXX;\fIschablone\fP ist unverändert. .sp Für \fBmkstemps\fP() und \fBmkostemps\fP(): \fIschablone\fP ist weniger als \fI(6 + endungslaenge)\fP Zeichen lang oder die letzten 6 Zeichen vor der Endung in \fIschablone\fP waren nicht XXXXXX. .PP Diese Funktionen könnten auch mit einem der für \fBopen\fP(2) beschriebenen Fehler fehlschlagen. .SH VERSIONEN \fBmkostemp\fP() ist seit Glibc 2.7 verfügbar. \fBmkstemps\fP() und \fBmkostemps\fP() sind seit Glibc 2.11 verfügbar. .SH "KONFORM ZU" \fBmkstemp\fP(): 4.3BSD, POSIX.1\-2001. .\" mkstemps() appears to be at least on the BSDs, Mac OS X, Solaris, .\" and Tru64. \fBmkstemps\fP(): nicht standardisiert, erscheint aber auf mehreren anderen Systemen \fBmkostemp\fP() und \fBmkostemps\fP() sind Glibc\-Erweiterungen. .SH ANMERKUNGEN Das frühere Verhalten, eine Datei mit den Zugriffsrechten 0666 zu erstellen, könnte ein Sicherheitsrisiko darstellen, besonders seit andere UNIX\-Varianten 0600 benutzen und jemand diese Einzelheit bei der Portierung von Programmen übersehen könnte. Allgemeiner ausgedrückt, sagt die POSIX\-Spezifikation von \fBmkstemp\fP() nichts über die Dateimodi, daher sollte die Anwendung sicherstellen, dass ihre Dateimodus\-Erstellungsmaske (siehe \fBumask\fP(2)) vor dem Aufruf von \fBmkstemp\fP() (und \fBmkostemp\fP()) entsprechend gesetzt ist. Der Prototyp von \fBmktemp\fP() befindet sich für Libc4, Libc5 und Glibc1 in \fI\fP. Glibc2 berücksichtigt POSIX.1 und hat den Prototyp in \fI\fP. .SH "SIEHE AUCH" \fBmkdtemp\fP(3), \fBmktemp\fP(3), \fBtempnam\fP(3), \fBtmpfile\fP(3), \fBtmpnam\fP(3) .SH KOLOPHON Diese Seite ist Teil der Veröffentlichung 3.42 des Projekts Linux\-\fIman\-pages\fP. Eine Beschreibung des Projekts und Informationen, wie Fehler gemeldet werden können, finden sich unter http://www.kernel.org/doc/man\-pages/. .SH ÜBERSETZUNG Die deutsche Übersetzung dieser Handbuchseite wurde von Andreas D. Preissig und Chris Leick 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 .