|
|
1.1 ! root 1: /* (-lgl ! 2: * COHERENT Version 4.0.2 ! 3: * Copyright (c) 1982, 1993 by Mark Williams Company. ! 4: * All rights reserved. May not be copied without permission. ! 5: -lgl) */ ! 6: /* ! 7: * stdio.h ! 8: * COHERENT Standard Input/Output library header. ! 9: * ANSI C Standard, Section 4.9. ! 10: */ ! 11: ! 12: #ifndef __STDIO_H__ ! 13: #define __STDIO_H__ ! 14: ! 15: #ifndef NULL ! 16: #define NULL ((char *)0) ! 17: #endif ! 18: ! 19: /* Macros. */ ! 20: #define BUFSIZ 512 /* default buffer size */ ! 21: #define EOF (-1) /* end of file */ ! 22: #define _EOFCHAR 26 /* ASCII EOF character */ ! 23: #define FILENAME_MAX 64 /* max filename length */ ! 24: #define FOPEN_MAX _NFILE /* max # of open files */ ! 25: #define _NFILE 60 /* number of FILEs */ ! 26: #define _NSTDFILE 3 /* number of predefined FILEs */ ! 27: #define L_tmpnam 64 /* tmpnam length */ ! 28: #define P_tmpdir "/tmp" /* default temporary directory */ ! 29: #define SEEK_CUR 1 /* from current position */ ! 30: #define SEEK_END 2 /* from end */ ! 31: #define SEEK_SET 0 /* from beginning */ ! 32: #define TMP_MAX 91 /* number of tmpnams */ ! 33: ! 34: /* Types. */ ! 35: typedef long fpos_t; /* file position type */ ! 36: #ifndef _SIZE_T ! 37: #define _SIZE_T ! 38: typedef unsigned int size_t; /* sizeof result type */ ! 39: #endif ! 40: /* ! 41: * The order the first 5 FILE members corresponds to the order in iBCS2, ! 42: * to allow a degree of binary compatability. ! 43: */ ! 44: typedef struct FILE { ! 45: int _cc; /* character count */ ! 46: unsigned char *_cp; /* current character */ ! 47: struct _FILE2 *_f2p; /* more info */ ! 48: char _ff1; /* flags */ ! 49: char _fd; /* file descriptor */ ! 50: char _ff2; /* more flags; see below */ ! 51: char _mode; /* mode */ ! 52: } FILE; ! 53: /* These additional members are not in struct FILE for compatability reasons. */ ! 54: typedef struct _FILE2 { ! 55: int (*_gt)(); /* getc function */ ! 56: int (*_pt)(); /* putc function */ ! 57: unsigned char *_bp; /* start of buffer */ ! 58: unsigned char *_dp; /* start of data */ ! 59: unsigned char *_ep; /* end of buffer */ ! 60: char *_nm; /* temp file name */ ! 61: int _uc; /* ungot char */ ! 62: } _FILE2; ! 63: ! 64: /* iBCS2 compatability. */ ! 65: #define _cnt _cc ! 66: #define _ptr _cp ! 67: #define _base _f2p ! 68: #define _flag _ff1 ! 69: #define _file _fd ! 70: ! 71: /* Standard FILEs. */ ! 72: extern FILE _iob[_NSTDFILE]; ! 73: extern FILE *_fp[_NFILE]; ! 74: #define stdin (&_iob[0]) ! 75: #define stdout (&_iob[1]) ! 76: #define stderr (&_iob[2]) ! 77: ! 78: /* _IO[FLN]BF are used for setvbuf() type args. */ ! 79: #define _IOFBF 0x00 /* fully buffered */ ! 80: #define _IONBF 0x04 /* unbuffered */ ! 81: #define _IOLBF 0x40 /* line buffered */ ! 82: /* Flags in _ff1, cf. iBCS2. */ ! 83: #define _FEOF 0x10 /* end of file */ ! 84: #define _FERR 0x20 /* error */ ! 85: /* Non-iBCS2 flags in _ff1. */ ! 86: #define _FRONLY 0x01 /* read only */ ! 87: #define _FWONLY 0x02 /* write only */ ! 88: #define _FRW 0x80 /* read and write */ ! 89: ! 90: /* Flags in _ff2, not in iBCS2. */ ! 91: #define _FINUSE 0x01 /* in use */ ! 92: #define _FAPPND 0x02 /* append */ ! 93: #define _FASCII 0x04 /* ASCII */ ! 94: #define _FDONTC 0x08 /* do not close */ ! 95: #define _FFREEB 0x10 /* free buffer when closed */ ! 96: #define _FUNGOT 0x80 /* ungotten char present */ ! 97: ! 98: /* Mode field values. */ ! 99: #define _MODE_FBUF 0x01 /* fully buffered */ ! 100: #define _MODE_LBUF 0x02 /* line buffered */ ! 101: #define _MODE_NBUF 0x04 /* unbuffered */ ! 102: #define _MODE_STR 0x08 /* string */ ! 103: #define _MODE_UNINIT 0x10 /* uninitialized */ ! 104: ! 105: /* External declarations for non-conforming implementations. */ ! 106: /* Standard functions. */ ! 107: extern void clearerr(); /* 4.9.10.1 */ ! 108: extern int fclose (); /* 4.9.5.1 */ ! 109: extern int feof (); /* 4.9.10.2 */ ! 110: extern int ferror (); /* 4.9.10.3 */ ! 111: extern int fflush (); /* 4.9.5.2 */ ! 112: extern int fgetc (); /* 4.9.7.1 */ ! 113: extern int fgetpos (); /* 4.9.9.1 */ ! 114: extern char * fgets (); /* 4.9.7.2 */ ! 115: extern FILE * fopen (); /* 4.9.5.3 */ ! 116: extern int fprintf (); /* 4.9.6.1 */ ! 117: extern int fputc (); /* 4.9.7.3 */ ! 118: extern int fputs (); /* 4.9.7.4 */ ! 119: extern size_t fread (); /* 4.9.8.1 */ ! 120: extern FILE * freopen (); /* 4.9.5.4 */ ! 121: extern int fscanf (); /* 4.9.6.2 */ ! 122: extern int fseek (); /* 4.9.9.2 */ ! 123: extern int fsetpos (); /* 4.9.9.3 */ ! 124: extern long int ftell (); /* 4.9.9.4 */ ! 125: extern size_t fwrite (); /* 4.9.8.2 */ ! 126: extern int getc (); /* 4.9.7.5 */ ! 127: extern int getchar (); /* 4.9.7.6 */ ! 128: extern char * gets (); /* 4.9.7.7 */ ! 129: extern void perror (); /* 4.9.10.4 */ ! 130: extern int printf (); /* 4.9.6.3 */ ! 131: extern int putc (); /* 4.9.7.8 */ ! 132: extern int putchar (); /* 4.9.7.9 */ ! 133: extern int puts (); /* 4.9.7.10 */ ! 134: extern int remove (); /* 4.9.4.1 */ ! 135: extern int rename (); /* 4.9.4.2 */ ! 136: extern void rewind (); /* 4.9.9.5 */ ! 137: extern int scanf (); /* 4.9.6.4 */ ! 138: extern void setbuf (); /* 4.9.5.5 */ ! 139: extern int setvbuf (); /* 4.9.5.6 */ ! 140: extern int sprintf (); /* 4.9.6.5 */ ! 141: extern int sscanf (); /* 4.9.6.6 */ ! 142: extern FILE * tmpfile (); /* 4.9.4.3 */ ! 143: extern char * tmpnam (); /* 4.9.4.4 */ ! 144: extern int ungetc (); /* 4.9.7.11 */ ! 145: extern int vfprintf(); /* 4.9.6.7 */ ! 146: extern int vprintf (); /* 4.9.6.8 */ ! 147: extern int vsprintf(); /* 4.9.6.9 */ ! 148: ! 149: /* Internal functions. */ ! 150: extern void _dassign(); ! 151: extern int _dscan (); ! 152: extern char * _dtefg (); ! 153: extern void _dtoa (); ! 154: extern int _fgetb (); ! 155: extern int _fgetc (); ! 156: extern int _fgete (); ! 157: extern int _fgetstr(); ! 158: extern int _fginit (); ! 159: extern int _filbuf (); ! 160: extern void _finish (); ! 161: extern int _flsbuf (); ! 162: extern FILE * _fopen (); ! 163: extern int _fpinit (); ! 164: extern int _fpseek (); ! 165: extern int _fputa (); ! 166: extern int _fputb (); ! 167: extern int _fputc (); ! 168: extern int _fpute (); ! 169: extern int _fputt (); ! 170: extern int _scanf (); ! 171: extern FILE * _stropen(); ! 172: ! 173: /* Nonstandard functions. */ ! 174: extern FILE * fdopen(); ! 175: extern FILE * popen(); ! 176: ! 177: /* Macros covering standard functions. */ ! 178: #define clearerr(fp) ((fp)->_ff1 &= ~(_FERR|_FEOF)) ! 179: #define feof(fp) ((fp)->_ff1 & _FEOF) ! 180: #define ferror(fp) ((fp)->_ff1 & _FERR) ! 181: #define getc(fp) (--(fp)->_cc<0 ? ++(fp)->_cc,(*(fp)->_f2p->_gt)((fp)) \ ! 182: : *(fp)->_cp++) ! 183: #define getchar() getc(stdin) ! 184: #define putc(c,fp) (--(fp)->_cc<0 ? ++(fp)->_cc,(*(fp)->_f2p->_pt)((c),(fp)) \ ! 185: : (*(fp)->_cp++=(c))) ! 186: #define putchar(c) putc((c), stdout) ! 187: ! 188: /* Other macros, non-ANSI. */ ! 189: #define fileno(fp) ((fp)->_fd) ! 190: #endif ! 191: ! 192: /* end of stdio.h */
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.