.\" -*- coding: UTF-8 -*- '\" t .\" Copyright 1993 David Metcalfe (david@prism.demon.co.uk) .\" and Copyright (C) 2008, Michael Kerrisk .\" .\" SPDX-License-Identifier: Linux-man-pages-copyleft .\" .\" 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 "20. Juli 2023" "Linux man\-pages 6.05.01" .SH BEZEICHNUNG mkstemp, mkostemp, mkstemps, mkostemps \- eine einzigartige temporäre Datei erstellen .SH BIBLIOTHEK Standard\-C\-Bibliothek (\fIlibc\fP, \fI\-lc\fP) .SH ÜBERSICHT .nf \fB#include \fP .PP \fBint mkstemp(char *\fP\fIschablone\fP\fB);\fP \fBint mkostemp(char *\fP\fIschablone\fP\fB, int \fP\fIschalter\fP\fB);\fP \fBint mkstemps(char *\fP\fIschablone\fP\fB, int \fP\fIendungslaenge\fP\fB);\fP \fBint mkostemps(char *\fP\fIschablone\fP\fB, int \fP\fIendungslaenge\fP\fB, int \fP\fIschalter\fP\fB);\fP .fi .PP .RS -4 Mit Glibc erforderliche Feature\-Test\-Makros (siehe \fBfeature_test_macros\fP(7)): .RE .PP \fBmkstemp\fP(): .nf .\" || _XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED _XOPEN_SOURCE >= 500 || /* Glibc >= 2.12: */ _POSIX_C_SOURCE >= 200809L || /* Glibc <= 2.19: */ _SVID_SOURCE || _BSD_SOURCE .fi .PP \fBmkostemp\fP(): .nf _GNU_SOURCE .fi .PP \fBmkstemps\fP(): .nf /* Glibc >= 2.19: */ _DEFAULT_SOURCE || /* Glibc <= 2.19: */ _SVID_SOURCE || _BSD_SOURCE .fi .PP \fBmkostemps\fP(): .nf _GNU_SOURCE .fi .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 gesetzt, um den Fehler anzuzeigen. .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 ATTRIBUTE Siehe \fBattributes\fP(7) für eine Erläuterung der in diesem Abschnitt verwandten Ausdrücke. .TS allbox; lbx lb lb l l l. Schnittstelle Attribut Wert T{ .na .nh \fBmkstemp\fP(), \fBmkostemp\fP(), \fBmkstemps\fP(), \fBmkostemps\fP() T} Multithread\-Fähigkeit MT\-Sicher .TE .sp 1 .SH STANDARDS .TP \fBmkstemp\fP() POSIX.1\-2001. .TP \fBmkstemps\fP() .\" mkstemps() appears to be at least on the BSDs, Mac OS X, Solaris, .\" and Tru64. BSD. .TP \fBmkostemp\fP() .TQ \fBmkostemps\fP() GNU. .SH GESCHICHTE .TP \fBmkstemp\fP() 4.3BSD, POSIX.1\-2001. .TP \fBmkstemps\fP() Glibc 2.11. BSD, Mac OS X, Solaris, Tru64. .TP \fBmkostemp\fP() Glibc 2.7. .TP \fBmkostemps\fP() Glibc 2.11. .PP 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) .PP .SH ÜBERSETZUNG Die deutsche Übersetzung dieser Handbuchseite wurde von Andreas D. Preissig , Chris Leick , Mario Blättermann und Dr. Tobias Quathamer erstellt. .PP 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. .PP 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 .