|
|
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.