tmpnam.c revision 60484
1#include <stdio.h> 2 3#ifndef L_tmpnam 4#define L_tmpnam 100 5#endif 6#ifndef P_tmpdir 7#define P_tmpdir "/usr/tmp" 8#endif 9 10static char tmpnam_buffer[L_tmpnam]; 11static int tmpnam_counter; 12 13extern int getpid (); 14 15char * 16tmpnam (s) 17 char *s; 18{ 19 int pid = getpid (); 20 21 if (s == NULL) 22 s = tmpnam_buffer; 23 24 /* Generate the filename and make sure that there isn't one called 25 it already. */ 26 27 while (1) 28 { 29 FILE *f; 30 sprintf (s, "%s/%s%x.%x", P_tmpdir, "t", pid, tmpnam_counter); 31 f = fopen (s, "r"); 32 if (f == NULL) 33 break; 34 tmpnam_counter++; 35 fclose (f); 36 } 37 38 return s; 39} 40