home *** CD-ROM | disk | FTP | other *** search
/ Crawly Crypt Collection 1 / crawlyvol1.bin / apps / educatin / typtutor / stdio.h < prev    next >
C/C++ Source or Header  |  1989-06-03  |  2KB  |  84 lines

  1. #ifndef DL_STDIO
  2. #define DL_STDIO
  3.  
  4. #define _BUFSIZE 512
  5. #define BUFSIZ    _BUFSIZE        /* Unix compatable */
  6. #define _NFILE 20
  7.  
  8. typedef struct _iobuf {
  9.     char *_ptr;
  10.     int _cnt;
  11.     char *_base;
  12.     int _flag;
  13.     int _fd;
  14.     int _bufsize;    /* buffer size for this file */
  15. } FILE;
  16. extern FILE _iob[_NFILE];
  17.  
  18. #define stdin (&_iob[0])
  19. #define stdout (&_iob[1])
  20. #define stderr (&_iob[2])
  21. #define STDIN     0
  22. #define STDOUT     1
  23. #define STDERR     STDOUT
  24. #define STDAUX    2
  25. #define STDPRT    3
  26.  
  27. #define _READ     01
  28. #define _WRITE     02
  29. #define _APPEND  04
  30. #define _UNBUF     010
  31. #define _BIGBUF  020
  32. #define _EOF     040
  33. #define _ERR     0100
  34. #define _DIRTY     0200    /* buffer was changed */
  35. #define _LINBUF  0400
  36. #define    _IFLUSH     01000    /* (ONLY STDIN) Flush stdout when filling */
  37. #define _RDWR    02000
  38.  
  39. #define NULL 0L    /* must be long since it can be passed as a parameter */
  40. #define EOF (-1)
  41.  
  42. #define getc(p) (--(p)->_cnt >= 0 ? *(p)->_ptr++ & 0377 : _fillbuf(p))
  43. #define getchar() getc(stdin)
  44. #define putc(x,p) (--(p)->_cnt >= 0 ? (*(p)->_ptr++ = (x)) & 0377 : \
  45.     _flushbuf((x),p))
  46. #define putchar(x) putc(x,stdout)
  47. #define feof(p) ((p)->_flag&_EOF)
  48. #define ferror(p) ((p)->_flag&_ERR)
  49. #define clearerr(p) ((p)->_flag &= ~(_ERR | _EOF))
  50. #define fileno(p) ((p)->_fd)
  51. #define rand() (int)(_seed = _seed * 6907 + 130253)
  52. #define srand(x) _seed = x;
  53.  
  54. extern FILE *fopen(), *fdopen(), *freopen();
  55. extern long ftell();
  56. extern char *gets();
  57. extern char *fgets();
  58. extern long _seed;
  59.  
  60. /* 
  61.  * These are not normally part of stdio.h, but are included here to help
  62.  * reduce errors made by beginning programmers. 
  63.  */
  64. extern char *sprintf(), *malloc(), *lmalloc(), *calloc(), *lcalloc();
  65. extern char *alloca(), *realloc(), *lrealloc();
  66. extern long labs(), lseek();
  67.  
  68. extern int errno;    /* defined in exit.c */
  69.  
  70. typedef long jmp_buf[10];
  71.  
  72. #endif /* DL_STDIO */
  73. #ifndef peekb
  74.  
  75. #define peekb(cp)  (*((char *)cp))
  76. #define peekw(wp)  (*((int  *)wp))
  77. #define peekl(lp)  (*((long *)lp))
  78.  
  79. #define pokeb(bp,b) (*((char *)cp)=c)
  80. #define pokew(wp,l) (*((int  *)wp)=l)
  81. #define pokel(lp,l) (*((long *)lp)=l)
  82.  
  83. #endif
  84.