Subroutine tmpnam oder tempnam
Zweck
Erstellt den Namen einer temporären Datei.
Bibliothek
Standard-C-Bibliothek (libc.a)
Syntax
Beschreibung
Die Subroutinen Tmpnam und Tempnam generieren Dateinamen für temporäre Dateien. Die Subroutine tmpnam generiert einen Dateinamen mit dem Pfadnamen, der als P_tmpdir in der Datei stdio.h definiert ist.
Dateien, die mit der Subroutine Tmpnam erstellt wurden, befinden sich in einem Verzeichnis, das für die temporäre Verwendung bestimmt ist. Die Dateinamen sind eindeutig. Die Anwendung muss die Datei erstellen und entfernen.
Mit der Subroutine Tempnam können Sie das Verzeichnis definieren. Der Parameter Verzeichnis verweist auf den Name des Verzeichnisses, in dem die Datei erstellt werden soll. Wenn der Parameter Verzeichnis ein Nullzeiger ist oder auf eine Zeichenfolge verweist, die kein Name für ein Verzeichnis ist, wird das Pfadpräfix verwendet, das als P_tmpdir in der Datei stdio.h definiert ist. Verwenden Sie für eine Anwendung, die temporäre Dateien mit Anfangsbuchstaben enthält, den Parameter FileXPointer , um die Sequenz zu definieren. Der Parameter FileXPointer (ein Nullzeiger oder eine Zeichenfolge mit bis zu 5 Byte) wird als Anfang des Dateinamens verwendet.
Zwischen dem Zeitpunkt, zu dem ein Dateiname erstellt und die Datei geöffnet wird, kann ein anderer Prozess eine Datei mit demselben Namen erstellen. Die Namensduplizierung ist unwahrscheinlich, wenn der andere Prozess diese Subroutinen oder die Subroutine Mktemp verwendet und die Dateinamen ausgewählt werden, um die Duplizierung auf andere Weise zu vermeiden.
Parameter
| Element | Beschreibung |
|---|---|
| string | Gibt die Adresse eines Arrays von mindestens der Anzahl Byte an, die durch L_tmpnam, eine Konstante, die in der Datei stdio.h definiert ist, angegeben wird. Wenn der Parameter Zeichenfolge einen Nullwert hat, platziert die Subroutine Tmpnam ihr Ergebnis in einen internen statischen Bereich und gibt einen Zeiger auf diesen Bereich zurück. Der nächste Aufruf dieser Subroutine löscht den Inhalt des Bereichs. Wenn der Wert des Parameters Zeichenfolge nicht null ist, stellt die Subroutine Tmpnam ihre Ergebnisse in das angegebene Array und gibt den Wert des Parameters Zeichenfolge zurück. |
| directory | Verweist auf den Pfadnamen des Verzeichnisses, in dem die Datei erstellt werden soll Die Subroutine Tempnam steuert die Auswahl eines Verzeichnisses. Wenn der Parameter Verzeichnis ein Nullzeiger ist oder auf eine Zeichenfolge verweist, die kein Pfadname für ein geeignetes Verzeichnis ist, dann wird der als P_tmpdir in der Datei stdio.h definierte Pfadname verwendet. Wenn dieser Pfadname nicht zugänglich ist, wird das Verzeichnis /tmp verwendet. Sie können die Auswahl eines Pfadnamens umgehen, wenn Sie eine Umgebungsvariable ( TMPVERZ) in der Umgebung des Benutzers angeben. Der Wert der Umgebungsvariablen TMPVERZ ist ein Pfadname für das gewünschte Verzeichnis für temporäre Dateien. |
| FileXPointer | Ein Zeiger auf eine Anfangszeichenfolge, mit der der Dateiname beginnt. Der Parameterwert FileXPointer kann ein Nullzeiger sein oder auf eine Zeichenfolge verweisen, die als erste Zeichen des temporären Dateinamens verwendet werden soll. Die Anzahl der zulässigen Zeichen ist vom Dateisystem abhängig, aber maximal 5 Byte sind zulässig. |
Rückgabewerte
Nach ihrer Beendigung ordnet die Subroutine Tempnam mithilfe der Subroutine Malloc Speicherbereich für die Zeichenfolge zu, stellt den generierten Pfadnamen in diesen Speicherbereich und gibt einen Zeiger auf den Speicherbereich zurück. Andernfalls wird ein Nullzeiger zurückgegeben und die globale Variable Fehlernummer wird gesetzt, um den Fehler anzuzeigen. Der von Tempnam zurückgegebene Zeiger kann in der Subroutine Frei verwendet werden, wenn der Speicherbereich nicht mehr benötigt wird.
Fehlercodes
Die Subroutine Tempnam gibt den folgenden Fehlercode zurück, wenn sie nicht erfolgreich ist:
| Element | Beschreibung |
|---|---|
| ENOMEM | Es ist nicht genügend Speicherplatz verfügbar. |
| Element | Beschreibung |
|---|---|
| ENINVAL (AUSWERTUNG) | Zeigt einen ungültigen Zeichenfolge -Wert an. |