Provided by: manpages-de-dev_1.4-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() unterscheidet sich von mkstemp() nur dadurch,  dass  mit  schalter
       zusätzliche  Schalter,  die  open(2)  betreffen,  angeben  werden  können  (z.B. O_APPEND,
       O_SYNC).

       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.

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.

       Der Prototyp von mktemp() befindet sich für Libc4, Libc5 und Glibc1 in <unistd.h>.  Glibc2
       berücksichtigt POSIX.1 und hat den Prototyp in <stdlib.h>.

SIEHE AUCH

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

KOLOPHON

       This  page  is  part  of release 3.54 of the Linux man-pages project. A description of the
       project,    and    information    about    reporting    bugs,    can    be    found     at
       http://www.kernel.org/doc/man-pages/.

ÜBERSETZUNG

       Die   deutsche   Übersetzung   dieser   Handbuchseite   wurde   von  Andreas  D.  Preissig
       <andreas@sanix.ruhr.de> und Chris Leick <c.leick@vollbio.de> 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>.