Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ tmpnam(3S) — Reliant UNIX 5.44c4

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

access(2)

creat(2)

unlink(2)

malloc(3C)

mktemp(3C)

fopen(3S)

tmpfile(3S)

tmpnam(3S)                                                       tmpnam(3S)

NAME
     tmpnam, tempnam - Name für temporäre Datei erstellen

SYNTAX
     #include <stdio.h>

     char *tmpnam (char *s);

     char *tempnam (const char *dir, const char *pfx);

BESCHREIBUNG
     Mit diesen Funktionen werden Dateinamen erstellt, die für eine tempo-
     räre Datei gültig sind.

     tmpnam() generiert immer einen Dateinamen unter Verwendung des Pfad-
     Präfixes, der als Ptmpdir in der Include-Datei stdio.h definiert ist.
     Wenn s NULL ist, schreibt tmpnam() das Resultat in einen internen sta-
     tischen Bereich und gibt einen Zeiger auf diesen Bereich zurück. Mit
     dem nächsten Aufruf von tmpnam() wird der Inhalt dieses Bereichs zer-
     stört. Wenn s nicht NULL ist, wird davon ausgegangen, daß es die
     Adresse eines Feldes von wenigstens Ltmpnam Bytes ist, wobei Ltmpnam
     eine in stdio.h definierte Konstante ist; tmpnam() setzt das Ergebnis
     in dieses Feld und gibt s zurück.

     tempnam() ermöglicht die Steuerung der Dateiverzeichniswahl. Das Argu-
     ment dir zeigt auf den Namen des Dateiverzeichnisses, in dem die Datei
     erstellt werden soll. Wenn dir NULL ist oder auf eine Zeichenkette
     weist, die nicht der Name für ein entsprechendes Dateiverzeichnis ist,
     wird das als Ptmpdir in der Include-Datei stdio.h definierte Pfad-
     Präfix verwendet. Kann auf dieses Dateiverzeichnis nicht mit access(2)
     zugegriffen werden, wird /tmp als letzte Möglichkeit verwendet. Dieser
     gesamte Ablauf kann durch Bereitstellen einer Umgebungsvariablen
     TMPDIR verbessert werden. Der Wert von TMPDIR ist der Name des
     gewünschten Dateiverzeichnisses der temporären Datei.

     Bei vielen Anwendungen ist es vorteilhaft, wenn die temporären Dateien
     bestimmte bevorzugte Anfangsbuchstaben in ihren Namen aufweisen. Hier-
     für verwendet man das Argument pfx. Dieses Argument kann NULL sein
     oder auf eine Zeichenkette von maximal fünf Bytes zeigen, die als die
     ersten Bytes des Namens der temporären Datei eingesetzt werden.

     tempnam() verwendet malloc(), um Speicherplatz für den erzeugten
     Dateinamen zu erhalten und gibt einen Zeiger auf diesen Bereich
     zurück. Daher kann jeder von tempnam() zurückgegebene Zeigerwert als
     Argument für free() dienen [siehe malloc(3C)]. Wenn tempnam() aus
     irgendeinem Grunde das erwartete Ergebnis nicht liefern kann, d. h.
     wenn malloc() erfolglos war oder kein geeignetes Dateiverzeichnis
     gefunden wurde, wird ein Nullzeiger zurückgegeben.

     tempnam() ist erfolglos, wenn nicht genug Speicher vorhanden ist.





Seite 1                      Reliant UNIX 5.44               Gedruckt 11/98

tmpnam(3S)                                                       tmpnam(3S)

HINWEISE
     Diese Funktionen generieren bei jedem Aufruf einen anderen Dateinamen.

     Dateien, die unter Verwendung dieser Funktionen und entweder von
     fopen() oder creat() erstellt wurden, sind nur insofern temporär, als
     sie sich in einem Dateiverzeichnis befinden, das für temporären
     Gebrauch bestimmt ist, und ihre Namen eindeutig sind. Es liegt in der
     Verantwortung des Benutzers, die Datei zu löschen, wenn diese nicht
     mehr gebraucht wird. Wenn diese Funktionen mehr als TMPMAX (definiert
     in stdio.h) mal in einem einzigen Prozeß aufgerufen werden, werden
     vorher benutzte Namen wieder verwendet.

     Es ist möglich, daß während des Zeitraums von der Erstellung eines
     Dateinamens bis zum Öffnen der Datei ein anderer Prozeß eine Datei mit
     dem gleichen Namen erstellt. Dies kann jedoch nicht eintreten, wenn
     der andere Prozeß diese Funktionen oder mktemp() verwendet und die
     Dateinamen so gewählt werden, daß ihre Duplizierung auf andere Weise
     unwahrscheinlich ist.

SIEHE AUCH
     access(2), creat(2), unlink(2), malloc(3C), mktemp(3C), fopen(3S),
     tmpfile(3S).
































Seite 2                      Reliant UNIX 5.44               Gedruckt 11/98

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026