Provided by: manpages-de-dev_2.5-1_all bug

BEZEICHNUNG

       mkstemp, mkostemp, mkstemps, mkostemps - eine einzigartige temporäre Datei erstellen

ÜBERSICHT

       #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():
           _XOPEN_SOURCE >= 500
               || /* Seit Glibc 2.12: */ _POSIX_C_SOURCE >= 200809L
               || /* Glibc-Versionen <= 2.19: */ _SVID_SOURCE || _BSD_SOURCE

       mkostemp(): _GNU_SOURCE
       mkstemps():
           /* Glibc seit 2.19: */ _DEFAULT_SOURCE
               || /* Glibc-Versionen <= 2.19: */ _SVID_SOURCE || _BSD_SOURCE
       mkostemps(): _GNU_SOURCE

BESCHREIBUNG

       Die  Funktion  mkstemp()  erstellt  einen  eindeutigen  temporären Dateinamen aus schablone, erstellt und
       öffnet die Datei und gibt einen Deskriptor für für die offene Datei zurück.

       Die letzten sechs Zeichen von schablone müssen  »XXXXXX«  sein.  Diese  werden  durch  eine  Zeichenkette
       ersetzt,   die   den   Dateinamen   eindeutig   macht.  Da  sie  verändert  wird,  darf  schablone  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.
       Der  zurückgegebene  Dateideskriptor ist zum Lesen und Schreiben geöffnet. Die Datei wird mit open(2) und
       dem Schalter O_EXCL geöffnet, was gewährleistet, dass die Datei vom aufrufenden Prozess erzeugt wurde.

       Die Funktion mkostemp() ist mkstemp() ähnlich, mit dem Unterschied, dass die folgenden  Bits  –  mit  der
       selben  Bedeutung  wie für open(2) – in schalter angegeben werden können: O_APPEND, O_CLOEXEC und O_SYNC.
       Beachten Sie, dass mkostemp() beim Erstellen der Datei bereits die Werte O_RDWR, O_CREAT  und  O_EXCL  im
       Argument  schalter  beinhaltet,  das  an  open(2)  übergeben wird. Es ist nicht nötig, diese Werte in das
       Argument schalter einzubeziehen und ruft auf einigen System Fehler hervor.

       Die Funktion mkstemps() unterscheidet sich von mkstemp() nur dadurch, dass die Zeichenkette in  schablone
       eine  Endung  von endungslaenge Zeichen enthält. Daher hat schablone die Form praefixXXXXXXendung und die
       Zeichenkette XXXXXX wird wie für mkstemp() verändert.

       Die Funktion mkostemp() verhält sich zu mkstemps() wie mkostemp() zu mkstemp().

RÜCKGABEWERT

       Bei Erfolg geben diese Funktionen den Dateideskriptor der temporären Datei zurück. Im Fehlerfall wird  -1
       zurückgegeben und errno entsprechend gesetzt.

FEHLER

       EEXIST Es  konnte kein eindeutiger temporärer Dateiname erstellt werden. Der Inhalt von schablone ist nun
              undefiniert.

       EINVAL Für  mkstemp()  und  mkostemp():  Die  letzten  sechs  Buchstaben  von   schablone   waren   nicht
              XXXXXX;schablone ist unverändert.

              Für  mkstemps()  und  mkostemps(): schablone ist weniger als (6 + endungslaenge) Zeichen lang oder
              die letzten 6 Zeichen vor der Endung in schablone waren nicht XXXXXX.

       Diese Funktionen könnten auch mit einem der für open(2) beschriebenen Fehler fehlschlagen.

VERSIONEN

       mkostemp() ist seit Glibc 2.7 verfügbar. mkstemps() und mkostemps() sind seit Glibc 2.11 verfügbar.

ATTRIBUTE

       Siehe attributes(7) für eine Erläuterung der in diesem Abschnitt verwandten Ausdrücke.

       ┌────────────────────────┬───────────────────────┬─────────┐
       │SchnittstelleAttributWert    │
       ├────────────────────────┼───────────────────────┼─────────┤
       │mkstemp(), mkostemp(),  │ Multithread-Fähigkeit │ MT-Safe │
       │mkstemps(), mkostemps() │                       │         │
       └────────────────────────┴───────────────────────┴─────────┘

KONFORM ZU

       mkstemp(): 4.3BSD, POSIX.1-2001.

       mkstemps(): nicht standardisiert, erscheint aber auf mehreren anderen Systemen

       mkostemp() und mkostemps() sind Glibc-Erweiterungen.

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.

       Allgemeiner ausgedrückt, sagt die POSIX-Spezifikation von mkstemp()  nichts  über  die  Dateimodi,  daher
       sollte die Anwendung sicherstellen, dass ihre Dateimodus-Erstellungsmaske (siehe umask(2)) vor dem Aufruf
       von mkstemp() (und mkostemp()) entsprechend gesetzt ist.

SIEHE AUCH

       mkdtemp(3), mktemp(3), tempnam(3), tmpfile(3), tmpnam(3)

KOLOPHON

       Diese Seite ist Teil der Veröffentlichung  4.15  des  Projekts  Linux-man-pages.  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/.

ÜBERSETZUNG

       Die deutsche Übersetzung dieser Handbuchseite wurde  von  Andreas  D.  Preissig  <andreas@sanix.ruhr.de>,
       Chris  Leick  <c.leick@vollbio.de>,  Mario  Blättermann  <mario.blaettermann@gmail.com>  und  Dr.  Tobias
       Quathamer <toddy@debian.org> 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>.