#include #include #include #define EOF (-1) /*#define NULL 0 redef from stdef.h */ #define BUFSIZ 8192 #define OPN_MAX 20 typedef struct { int cnt; char *ptr; char *base; int flag; int fd; } FILE; extern FILE _iob[OPN_MAX]; #define stdin (_iob+0) #define stdout (_iob+1) #define stderr (_iob+2) enum flags { _READ = 1 << 0, _WRITE = 1 << 2, _UNBUF = 1 << 3, _EOF = 1 << 4, _ERR = 1 << 5 }; int _fillbuf(FILE *); int _flushbuf(int, FILE *); FILE *fopen(char *name, char *mode); int fflush(FILE *fp); int fclose(FILE *fp); int puts(const char *); #define feof(p) ((p)->flag & _EOF) #define ferror(p) ((p)->flag & _ERR) #define fileno(p) ((p)->fd) #define getc(p) ((--(p)->cnt >= 0) \ ? (unsigned char) *(p)->ptr++ : _fillbuf(p)) #define putc(x, p) ((--(p)->cnt >= 0) \ ? *(p)->ptr++ = (x) : _flushbuf(x, p)) #define getchar() getc(stdin) #define putchar(x) putc((x), stdout)