Annotation of coherent/b/lib/libc/stdio/tmpnam.c, revision 1.1.1.1

1.1       root        1: /*
                      2:  * libc/stdio/tmpnam.c
                      3:  * ANSI-compliant C standard i/o library.
                      4:  * tmpnam()
                      5:  * ANSI 4.9.4.4.
                      6:  * Generate a temporary file name a la SV.
                      7:  * The name (generated by mktemp()) is of the form "/tmp/t<pid>x",
                      8:  * where <pid> is the 5-digit pid and x is an ASCII character.
                      9:  */
                     10: 
                     11: #include <stdio.h>
                     12: #include <string.h>
                     13: 
                     14: extern char *mktemp();
                     15: 
                     16: #ifdef GEMDOS
                     17: #define        FSPATHSEP       "\\"
                     18: #ifndef        P_tmpdir
                     19: #define        P_tmpdir        "\\tmp"
                     20: #endif
                     21: #endif
                     22: #ifdef DOS
                     23: #define        FSPATHSEP       "\\"
                     24: #ifndef        P_tmpdir
                     25: #define        P_tmpdir        "\\tmp"
                     26: #endif
                     27: #endif
                     28: #ifndef        FSPATHSEP
                     29: #define        FSPATHSEP       "/"
                     30: #ifndef        P_tmpdir
                     31: #define        P_tmpdir        "/tmp"
                     32: #endif
                     33: #endif
                     34: #ifndef        L_tmpnam
                     35: #define        L_tmpnam        64
                     36: #endif
                     37: #define        TEMPLATE        "tXXXXXX"
                     38: 
                     39: char *
                     40: tmpnam(s) register char *s;
                     41: {
                     42:        static char namebuf[L_tmpnam];
                     43:        char *name;
                     44: 
                     45:        if (s == NULL)
                     46:                s = namebuf;
                     47:        for (;;) {
                     48:                strcpy(s, P_tmpdir);
                     49:                strcat(s, FSPATHSEP);
                     50:                strcat(s, TEMPLATE);
                     51:                name = mktemp(s);
                     52:                if (access(name, 0) == -1)
                     53:                        break;
                     54:        }
                     55:        return name;
                     56: }
                     57: 
                     58: /* end of libc/stdio/tmpnam.c */

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.