Your Browser is not longer supported

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

{{viewport.spaceProperty.prod}}

tmpnam - Basisnamen für temporäre Datei erzeugen

&pagelevel(4)&pagelevel

Definition

#include <stdio.h>

char *tmpnam(char *s)

Beschreibung

tmpnam() erzeugt eine Zeichenkette, die ein gültiger, eindeutiger Dateiname ist.

tmpnam() erzeugt jedes Mal, wenn sie vom selben Prozess aufgerufen wird, einen anderen Dateinamen (bis zu {TMP_MAX}-mal). Wenn die Funktion öfter als {TMP_MAX}-mal aufgerufen wird, werden vorher benutzte Namen wieder verwendet.

Die Implementierung verhält sich so, als ob tmpnam() von keiner Bibliotheksfunktion aufgerufen würde.

In stdio.h ist P_tmpdir mit "/var/tmp" als das Dateiverzeichnis definiert, in dem die temporäre Datei angelegt wird.

Returnwert

Zeiger auf eine Zeichenkette

 


bei Erfolg.


Nullzeiger

wenn kein Name generiert werden kann.


Wenn das Argument s der Nullzeiger ist, schreibt tmpnam() das Ergebnis in einen internen, statischen Bereich und gibt einen Zeiger auf diesen Bereich zurück. Nachfolgende Aufrufe der Funktion tmpnam() können denselben Bereich wieder verändern.

Wenn das Argument s nicht der Nullzeiger ist, wird angenommen, dass es auf einen Vektor vom Typ char der Mindestlänge {L_tmpnam} zeigt; tmpnam() schreibt das Ergebnis in diesen Vektor und liefert das Argument als Returnwert.

Hinweise

Wenn die Funktion tmpnam() öfter als {TMP_MAX}-mal in einem Prozess aufgerufen wird, werden vorher benutzte Namen wieder verwendet.

Der Benutzer ist dafür verantwortlich, die Datei zu löschen, auf die *s zeigt, wenn diese nicht mehr gebraucht wird.

In der Zeit zwischen dem Erzeugen des Dateinamens und dem Erzeugen der Datei kann ein anderer Prozess den gleichen Dateinamen erzeugt haben. Daher kann der Einsatz von tmpfile() nützlicher sein.

Dies kann jedoch nicht eintreten, wenn der andere Prozess tmpnam() oder mktemp() verwendet und der Pfadname so gewählt wird, dass seine Duplizierung auf andere Weise unwahrscheinlich ist.

Dateien, die mit tmpnam() und entweder von fopen() oder creat() erstellt wurden, sind nur insofern temporär, weil sie sich in einem Dateiverzeichnis befinden, das für temporären Gebrauch bestimmt ist, und weil ihre Namen eindeutig sind.

Ob tmpnam() für eine BS2000- oder eine POSIX-Datei ausgeführt wird, hängt von der Programmumgebung ab.

Siehe auch

fopen(), open(), tempnam(), tmpfile(), unlink(), stdio.h.