Annotation of GNUtools/libg++/libiberty/tmpnam.c, revision 1.1

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: }

unix.superglobalmegacorp.com

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