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 - Eindeutigen temporären Dateinamen erzeugen

&pagelevel(4)&pagelevel

Definition

#include <stdio.h>

char *tmpnam(char *s);

tmpnam erzeugt einen eindeutigen Dateinamen aus der TSN-Nummer der aktuellen Task, einem internen Kennzeichen, der Uhrzeit, dem Datum und einer maximal vierstelligen Nummer. Bei jedem Aufruf von tmpnam ändert sich die maximal vierstellige Nummer und nach Ablauf einer Sekunde die Uhrzeit. Dadurch ist sichergestellt, dass der Name immer unterschiedlich zu den Namen bereits existierender Dateien ist.
tmpnam kann maximal TMP_MAX mal aufgerufen werden.

Der Dateiname kann anschließend zum Neuanlegen einer beliebigen Datei verwendet werden.

Returnwert

Zeiger auf den erzeugten Namen:



Wenn s ein NULL-Zeiger ist, schreibt tmpnam das Ergebnis in einen C-internen Speicherbereich, der bei jedem Aufruf überschrieben wird.
Wenn s kein NULL-Zeiger ist, schreibt tmpnam das Ergebnis in die Ergebniszeichenkette s.Für s ist ein Speicherplatz für die Aufnahme von mindestens L_tmpnam Zeichen bereitzustellen. L_tmpnam ist in <stdio.h> definiert.

 

0    

falls tmpnam öfter als TMP_MAX mal aufgerufen wurde.

Hinweise

tmpnam erzeugt maximal TMP_MAX Namen. TMP_MAX ist in der Include-Datei <stdio.h> definiert.

Dateien, die mit tmpnam-erzeugten Namen geöffnet wurden, werden nicht automatisch bei Programm- bzw. Taskende gelöscht. Die Dateien müssen explizit (z.B. mit remove) gelöscht werden.

Beispiel

#include <stdio.h>
int main(void)
{
 FILE *fp1;
 FILE *fp2;
 char nam1[L_tmpnam];
 char nam2[L_tmpnam];
 tmpnam(nam1);
 printf("Name1: %s\n", nam1); /* Name1: S.C.UNQ.1RCP.00.132112.27091991.0000 */
 fp1 = fopen(nam1, "w+r");
 tmpnam(nam2);
 printf("Name2: %s\n", nam2); /* Name2: S.C.UNQ.1RCP.00.132112.27091991.0001 */
 fp2 = fopen(nam2, "w+r");
 fclose(fp1);
 fclose(fp2);
 remove(nam1);
 remove(nam2);
}

Siehe auch

tmpfile, tmpfile64, mktemp, remove