Provided by: manpages-de-dev_1.11-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():
           _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  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.04  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 http://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>   und   Mario   Blättermann
       <mario.blaettermann@gmail.com> 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>.