home *** CD-ROM | disk | FTP | other *** search
/ ftp.barnyard.co.uk / 2015.02.ftp.barnyard.co.uk.tar / ftp.barnyard.co.uk / cpm / walnut-creek-CDROM / SIMTEL / HITECH-C / Z80V309.EXE / lha / STDIO.H < prev    next >
Text File  |  1979-11-30  |  3KB  |  94 lines

  1. #if    z80
  2. #define    BUFSIZ        512
  3. #define    _NFILE        8
  4. #else    z80
  5. #define    BUFSIZ        1024
  6. #define    _NFILE        20
  7. #endif    z80
  8.  
  9. #ifndef FILE
  10. #define    uchar    unsigned char
  11.  
  12. extern    struct    _iobuf {
  13.     char *        _ptr;
  14.     int        _cnt;
  15.     char *        _base;
  16.     uchar        _flag;
  17.     char        _file;
  18. } _iob[_NFILE];
  19.  
  20. #endif    FILE
  21.  
  22. #define    _IOREAD        01
  23. #define    _IOWRT        02
  24. #define    _IORW        03
  25. #define    _IONBF        04
  26. #define    _IOMYBUF    010
  27. #define    _IOEOF        020
  28. #define    _IOERR        040
  29. #define    _IOSTRG        0100
  30. #define    _IOBINARY    0200
  31.  
  32. #ifndef    NULL
  33. #define    NULL    ((void *)0)
  34. #endif    NULL
  35.  
  36. #define    FILE        struct _iobuf
  37. #define    EOF        (-1)
  38.  
  39. #define    stdin        (&_iob[0])
  40. #define    stdout        (&_iob[1])
  41. #define    stderr        (&_iob[2])
  42. #define    getchar()    getc(stdin)
  43. #define    putchar(x)    putc(x,stdout)
  44.  
  45. /*    getc() and putc() must be functions for CP/M to allow the special
  46.  *    handling of '\r', '\n' and '\032'. The same for MSDOS except that
  47.  *    it at least knows the length of a file.
  48.  */
  49.  
  50. #if    UNIX
  51. #define    getc(p)        (--(p)->_cnt>=0?(unsigned)*(p)->_ptr++:_filbuf(p))
  52. #define    putc(x,p)    (--(p)->_cnt>=0?((unsigned)(*(p)->_ptr++=x)):_flsbuf((unsigned)(x),p))
  53. #else    UNIX
  54. #define    getc(p)        fgetc(p)
  55. #define    putc(x,p)    fputc(x,p)
  56. #endif    UNIX
  57.  
  58. #define    feof(p)        (((p)->_flag&_IOEOF)!=0)
  59. #define    ferror(p)    (((p)->_flag&_IOERR)!=0)
  60. #define    fileno(p)    ((uchar)p->_file)
  61. #define    clrerr(p)    p->_flag &= ~_IOERR
  62. #define    clreof(p)    p->_flag &= ~_IOEOF
  63.  
  64. #define    L_tmpnam    34        /* max length of temporary names */
  65.  
  66. extern int    fclose(FILE *);
  67. extern int    fflush(FILE *);
  68. extern int    fgetc(FILE *);
  69. extern int    ungetc(int, FILE *);
  70. extern int    fputc(int, FILE *);
  71. extern int    getw(FILE *);
  72. extern int    putw(int, FILE *);
  73. extern char *    gets(char *);
  74. extern int    puts(char *);
  75. extern int    fputs(char *, FILE *);
  76. extern int    fread(void *, unsigned, unsigned, FILE *);
  77. extern int    fwrite(void *, unsigned, unsigned, FILE *);
  78. extern int    fseek(FILE *, long, int);
  79. extern int    rewind(FILE *);
  80. extern int    setbuf(FILE *, char *);
  81. extern int    printf(char *, ...);
  82. extern int    fprintf(FILE *, char *, ...);
  83. extern int    sprintf(char *, char *, ...);
  84. extern int    scanf(char *, ...);
  85. extern int    fscanf(FILE *, char *, ...);
  86. extern int    sscanf(char *, char *, ...);
  87. extern int    remove(char *);
  88. extern FILE *    fopen(char *, char *);
  89. extern FILE *    freopen(char *, char *, FILE *);
  90. extern FILE *    fdopen(int, char *);
  91. extern long    ftell(FILE *);
  92. extern char *    fgets(char *, int, FILE *);
  93. extern char *    _bufallo(void);
  94.