home *** CD-ROM | disk | FTP | other *** search
/ kermit.columbia.edu / kermit.columbia.edu.tar / kermit.columbia.edu / wkermit / stdios.h < prev    next >
C/C++ Source or Header  |  1985-11-10  |  2KB  |  71 lines

  1.  
  2. #include "cstdio.h"              /*  Greenleaf add on */
  3.  
  4. /**
  5. *
  6. * This header file defines the information used by the standard I/O
  7. * package.
  8. *
  9. **/
  10. #define _BUFSIZ 512        /* standard buffer size */
  11. #define BUFSIZ 512        /* standard buffer size */
  12. #define _NFILE 20        /* maximum number of files */
  13.  
  14. struct _iobuf
  15. {
  16. char *_ptr;            /* current buffer pointer */
  17. int _rcnt;            /* current byte count for reading */
  18. int _wcnt;            /* current byte count for writing */
  19. char *_base;            /* base address of I/O buffer */
  20. char _flag;            /* control flags */
  21. char _file;            /* file number */
  22. int _size;            /* size of buffer */
  23. char _cbuff;            /* single char buffer */
  24. char _pad;            /* (pad to even number of bytes) */
  25. };
  26.  
  27. extern struct _iobuf _iob[_NFILE];
  28.  
  29. #define _IOREAD 1        /* read flag */
  30. #define _IOWRT 2        /* write flag */
  31. #define _IONBF 4        /* non-buffered flag */
  32. #define _IOMYBUF 8        /* private buffer flag */
  33. #define _IOEOF 16        /* end-of-file flag */
  34. #define _IOERR 32        /* error flag */
  35. #define _IOSTRG 64
  36. #define _IORW 128        /* read-write (update) flag */
  37.  
  38. #if SPTR
  39. #define NULL 0            /* null pointer value */
  40. #else
  41. #define NULL 0L
  42. #endif
  43. #define FILE struct _iobuf    /* shorthand */
  44. #define EOF (-1)        /* end-of-file code */
  45.  
  46. #define stdin (&_iob[0])    /* standard input file pointer */
  47. #define stdout (&_iob[1])    /* standard output file pointer */
  48. #define stderr (&_iob[2])    /* standard error file pointer */
  49.  
  50. #define getc(p) (--(p)->_rcnt>=0? *(p)->_ptr++:_filbf(p))
  51. #define getchar() getc(stdin)
  52. #define putc(c,p) (--(p)->_wcnt>=0? ((int)(*(p)->_ptr++=(c))):_flsbf((c),p))
  53. #define putchar(c) putc(c,stdout)
  54. #define feof(p) (((p)->_flag&_IOEOF)!=0)
  55. #define ferror(p) (((p)->_flag&_IOERR)!=0)
  56. #define fileno(p) (p)->_file
  57. #define rewind(fp) fseek(fp,0L,0)
  58. #define fflush(fp) _flsbf(-1,fp)
  59. #define clearerr(fp) clrerr(fp)
  60.  
  61. FILE *fopen();
  62. FILE *freopen();
  63. long ftell();
  64. char *fgets();
  65.  
  66. #define abs(x) ((x)<0?-(x):(x))
  67. #define max(a,b) ((a)>(b)?(a):(b))
  68. #define min(a,b) ((a)<=(b)?(a):(b))
  69.  
  70.  
  71.