.\" -*- coding: UTF-8 -*- .\" Copyright 1993 David Metcalfe (david@prism.demon.co.uk) .\" and Copyright (C) 2008, Michael Kerrisk .\" .\" %%%LICENSE_START(VERBATIM) .\" 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. .\" %%%LICENSE_END .\" .\" 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 "15. September 2017" GNU Linux\-Programmierhandbuch .SH BEZEICHNUNG mkstemp, mkostemp, mkstemps, mkostemps \- eine einzigartige temporäre Datei erstellen .SH ÜBERSICHT .nf \fB#include \fP .PP \fBint mkstemp(char *\fP\fIschablone\fP\fB);\fP .PP \fBint mkostemp(char *\fP\fIschablone\fP\fB, int \fP\fIschalter\fP\fB);\fP .PP \fBint mkstemps(char *\fP\fIschablone\fP\fB, int \fP\fIendungslaenge\fP\fB);\fP .PP \fBint mkostemps(char *\fP\fIschablone\fP\fB, int \fP\fIendungslaenge\fP\fB, int \fP\fIschalter\fP\fB);\fP .fi .PP .in -4n Mit Glibc erforderliche Makros (siehe \fBfeature_test_macros\fP(7)): .in .PP \fBmkstemp\fP(): .ad l .RS 4 .PD 0 .\" || _XOPEN_SOURCE\ &&\ _XOPEN_SOURCE_EXTENDED _XOPEN_SOURCE\ >=\ 500 || /* Seit Glibc 2.12: */ _POSIX_C_SOURCE\ >=\ 200809L || /* Glibc\-Versionen <= 2.19: */ _SVID_SOURCE || _BSD_SOURCE .PD .RE .ad b .PP \fBmkostemp\fP(): _GNU_SOURCE .br \fBmkstemps\fP(): /* Glibc seit 2.19: */ _DEFAULT_SOURCE || /* Glibc\-Versionen <= 2.19: */ _SVID_SOURCE || _BSD_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. .PP 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. .PP Diese Datei wird mit den Rechten 0600 erstellt, das heißt, nur der Besitzer darf 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. .PP .\" Reportedly, FreeBSD Die Funktion \fBmkostemp\fP() ist \fBmkstemp\fP() ähnlich, mit dem Unterschied, dass die folgenden Bits – mit der selben Bedeutung wie für \fBopen\fP(2) – in \fIschalter\fP angegeben werden können: \fBO_APPEND\fP, \fBO_CLOEXEC\fP und \fBO_SYNC\fP. Beachten Sie, dass \fBmkostemp\fP() beim Erstellen der Datei bereits die Werte \fBO_RDWR\fP, \fBO_CREAT\fP und \fBO_EXCL\fP im Argument \fIschalter\fP beinhaltet, das an \fBopen\fP(2) übergeben wird. Es ist nicht nötig, diese Werte in das Argument \fIschalter\fP einzubeziehen und ruft auf einigen System Fehler hervor. .PP 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. .PP 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. .IP 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 ATTRIBUTE Siehe \fBattributes\fP(7) für eine Erläuterung der in diesem Abschnitt verwandten Ausdrücke. .TS allbox; lbw23 lb lb l l l. Schnittstelle Attribut Wert T{ \fBmkstemp\fP(), \fBmkostemp\fP(), .br \fBmkstemps\fP(), \fBmkostemps\fP() T} Multithread\-Fähigkeit MT\-Safe .TE .SH "KONFORM ZU" \fBmkstemp\fP(): 4.3BSD, POSIX.1\-2001. .PP .\" 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 .PP \fBmkostemp\fP() und \fBmkostemps\fP() sind Glibc\-Erweiterungen. .SH ANMERKUNGEN 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. Dieses frühere Verhalten könnte ein Sicherheitsrisiko darstellen, besonders seit andere UNIX\-Varianten 0600 benutzen und jemand diese Einzelheit bei der Portierung von Programmen übersehen könnte. POSIX.1\-2008 fügt eine Anforderung hinzu, dass die Datei mit dem Modus 0600 erstellt wird. .PP .\" .\" The prototype for .\" .BR mkstemp () .\" is in .\" .I .\" for libc4, libc5, glibc1; glibc2 follows POSIX.1 and has the prototype in .\" .IR . 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. .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 5.04 des Projekts Linux\-\fIman\-pages\fP. Eine Beschreibung des Projekts, Informationen, wie Fehler gemeldet werden können sowie die aktuelle Version dieser Seite finden sich unter \%https://www.kernel.org/doc/man\-pages/. .SH ÜBERSETZUNG Die deutsche Übersetzung dieser Handbuchseite wurde von Andreas D. Preissig , Chris Leick , Mario Blättermann und Dr. Tobias Quathamer erstellt. Diese Übersetzung ist Freie Dokumentation; lesen Sie die .UR https://www.gnu.org/licenses/gpl-3.0.html GNU General Public License Version 3 .UE 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 .MT debian-l10n-german@\:lists.\:debian.\:org Mailingliste der Übersetzer .ME .