Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

mkstemp - eindeutigen temporären Dateinamen erzeugen

&pagelevel(4)&pagelevel

Definition

#include <stdlib.h>

int mkstemp(char *template);

Beschreibung

mkstemp() erstellt einen eindeutigen Dateinamen, normalerweise in einem temporären Dateisystem, und gibt einen offenen Dateideskriptor für diese Datei zurück. Die Datei ist zum Lesen und Schreiben geöffnet. mkstemp() verhindert auf diese Weise einen möglichen Wettlauf zwischen einer Existenzprüfung und dem Öffnen der Datei.

Die Zeichenkette, auf die template zeigt, sollte einen Dateinamen mit sechs nachfolgenden 'X' enthalten. mkstemp() ersetzt die 'X' zur Erstellung eines eindeutigen Dateinamens durch einen Buchstaben und die aktuelle Prozess-ID. Der Buchstabe wird so gewählt, dass sich keine doppelten Dateinamen ergeben.

Returnwert

offener Dateideskriptor

 


bei Erfolg.

 

-1

wenn keine geeignete Datei erstellt werden konnte.

Hinweise

Es besteht die Möglichkeit, dass die Buchstaben ausgehen.

mkstemp() überprüft nicht, ob die Dateinamen-Komponente in template die maximal erlaubte Länge von Dateinamen überschreitet.

Aus Gründen der Portabilität zu Implementierungen, die sich an frühere Versionen des X/Open-Standards halten, wird zur Erzeugung eines eindeutigen Dateinamens die Funktion tmpfile() empfohlen.

mkstemp() ändert die übergebene Zeichenkette, die durch template angegeben wird. Dies bedeutet, dass Sie eine Zeichenkette, die durch template angegeben wird, nicht mehrmals verwenden können. Für jede eindeutige temporäre Datei, die Sie öffnen möchten, benötigen Sie eine neue Schablone.

Wenn mkstemp() einen neuen eindeutigen Dateinamen erstellt, wird zunächst überprüft, ob vorher bereits eine Datei mit diesem Namen existiert hat. Wenn Sie also mehr als einen eindeutigen Dateinamen erstellen, sollte für mehrere Aufrufe von mkstemp() nicht dieselbe Dateinamen-Komponente in template verwendet werden.

Siehe auch

getpid(), open(), tmpfile(), tmpnam(), stdlib.h.