|
|
1.1 root 1: #include <stdio.h>
2:
3: #ifndef L_tmpnam
4: #define L_tmpname 100
5: #endif
6: #ifndef P_tmpdir
7: #define P_tmpdir "/usr/tmp"
8: #endif
9:
10: static char tmpnam_buffer[L_tmpnam];
11: static int tmpnam_counter;
12:
13: extern int getpid ();
14:
15: char *
16: tmpnam (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: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.