home *** CD-ROM | disk | FTP | other *** search
/ Dream 48 / Amiga_Dream_48.iso / Atari / c / sozobon-v2 / dlibsrc.lha / TMPNAM.C < prev    next >
C/C++ Source or Header  |  1988-09-23  |  849b  |  48 lines

  1. #include <stdio.h>
  2. #include <string.h>
  3.  
  4. static int    _tmpcnt = 0;
  5. static char    _tmpnam[L_tmpnam];
  6. static char    _tmppfx[] = "TEMP$";
  7.  
  8. char *tmpnam(s)
  9.     char *s;
  10.     {
  11.     do
  12.         {
  13.         sprintf(_tmpnam, "%.5s%03d.TMP", _tmppfx, _tmpcnt);
  14.         _tmpcnt = (_tmpcnt + 1) % TMP_MAX;
  15.         }
  16.         while(exists(_tmpnam));
  17.     if(s == NULL)
  18.         return(strdup(_tmpnam));
  19.     else
  20.         return(strcpy(s, _tmpnam));
  21.     }
  22.  
  23. char *tempnam(dir, pfx)
  24.     char *dir;
  25.     register char *pfx;
  26.     {
  27.     register char *p;
  28.     char path[L_tmpnam];
  29.     char *getenv();
  30.  
  31.     if(p = getenv("TMPDIR"))
  32.         fullpath(path, p);
  33.     else if(dir)
  34.         fullpath(path, dir);
  35.     else
  36.         fullpath(path, "");
  37.     p = strrchr(path, '\0');
  38.     if(pfx == NULL)
  39.         pfx = _tmppfx;
  40.     do
  41.         {
  42.         sprintf(p, "%.5s%03d.TMP", pfx, _tmpcnt);
  43.         _tmpcnt = (_tmpcnt + 1) % TMP_MAX;
  44.         }
  45.         while(exists(path));
  46.     return(strdup(path));
  47.     }
  48.