Provided by: manpages-de-dev_0.10-1_all bug

BEZEICHNUNG

       mkstemp, mkostemp - 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.  (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.)   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() ist schablone 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

       Das frühere Verhalten, eine  Datei  mit  den  Zugriffsrechten  0666  zu
       erstellen,  könnte  ein  Sicherheitsrisiko  darstellen,  besonders seit
       andere UNIX-Varianten 0600 benutzen und jemand diese Einzelheit bei der
       Portierung von Programmen übersehen könnte.

       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

       Diese  Seite  ist  Teil  der   Veröffentlichung   3.32   des   Projekts
       Linux-man-pages.  Eine Beschreibung des Projekts und Informationen, wie
       Fehler    gemeldet     werden     können,     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> 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>.