home *** CD-ROM | disk | FTP | other *** search
/ DP Tool Club 14 / CD_ASCQ_14_0694.iso / maj / 653 / favail.c < prev    next >
C/C++ Source or Header  |  1994-04-03  |  1KB  |  55 lines

  1. /*
  2. **  Find out how many more files can be fopen'ed
  3. **
  4. **  public domain demo by Bob Stout
  5. */
  6.  
  7. #include <stdio.h>
  8.  
  9. #ifdef __TURBOC__
  10.  #define STREAM_BUF     _streams
  11.  #define FCNT           FOPEN_MAX
  12.  #define FLAG           flags
  13. #else /* MSC, ZTC++ */
  14.  #define STREAM_BUF     _iob
  15.  #define FCNT           _NFILE
  16.  #define FLAG           _flag
  17. #endif
  18.  
  19. int favail(void)
  20. {
  21.       int i, count;
  22.  
  23.       for (i = count = 0; i < FCNT; ++i)
  24.       {
  25.             if (0 == STREAM_BUF[i].FLAG)
  26.                   ++count;
  27.       }
  28.       return count;
  29. }
  30.  
  31. #ifdef TEST
  32.  
  33. void main(void)
  34. {
  35.       char *fname = "A$$$$$$$.$$$";
  36.       FILE *fp;
  37.  
  38.       do
  39.       {
  40.             int i = favail();
  41.  
  42.             printf("You can fopen %d new file%s\n", i, &"s"[i == 1]);
  43.             fp = fopen(fname, "w");
  44.             *fname += 1;
  45.       } while (fp);
  46.  
  47.       do
  48.       {
  49.             printf("removing %s\n", fname);
  50.             remove(fname);
  51.       } while ('A' <= --(*fname)) ;
  52. }
  53.  
  54. #endif /*TEST */
  55.