Provided by: manpages-de-dev_4.26.0-1_all bug

BEZEICHNUNG

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

BIBLIOTHEK

       Standard-C-Bibliothek (libc, -lc)

Ü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 Feature-Test-Makros (siehe feature_test_macros(7)):

       mkstemp():
           _XOPEN_SOURCE >= 500
               || /* Glibc >= 2.12: */ _POSIX_C_SOURCE >= 200809L
               || /* Glibc <= 2.19: */ _SVID_SOURCE || _BSD_SOURCE

       mkostemp():
           _GNU_SOURCE

       mkstemps():
           /* Glibc >= 2.19: */ _DEFAULT_SOURCE
               || /* Glibc <= 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 gesetzt, um den Fehler anzuzeigen.

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.

ATTRIBUTE

       Siehe attributes(7) für eine Erläuterung der in diesem Abschnitt verwandten Ausdrücke.
       ┌───────────────────────────────────────────────────────────────────┬───────────────────────┬───────────┐
       │ SchnittstelleAttributWert      │
       ├───────────────────────────────────────────────────────────────────┼───────────────────────┼───────────┤
       │ mkstemp(), mkostemp(), mkstemps(), mkostemps()                    │ Multithread-Fähigkeit │ MT-Sicher │
       └───────────────────────────────────────────────────────────────────┴───────────────────────┴───────────┘

STANDARDS

       mkstemp()
              POSIX.1-2001.

       mkstemps()
              BSD.

       mkostemp()
       mkostemps()
              GNU.

GESCHICHTE

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

       mkstemps()
              Glibc 2.11. BSD, Mac OS X, Solaris, Tru64.

       mkostemp()
              Glibc 2.7.

       mkostemps()
              Glibc 2.11.

       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)

Ü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 die
       Mailingliste der Übersetzer.

Linux man-pages 6.9.1                              2. Mai 2024                                        mkstemp(3)