#define EOF (-1) #define NBUF 512 struct Io { int fd; char *bufp, *ebuf, *strp, buf[NBUF]; }; extern struct Io *err; Io *openfd(int); Io *openstr(void); Io *opencore(char *, int); int emptybuf(Io*); void pchr(Io*, int); int rchr(Io*); void closeio(Io*); void flush(Io*); int fullbuf(Io*, int); void pdec(Io*, int); void poct(Io*, unsigned); void pptr(Io*, void*); void pquo(Io*, char*); void pwrd(Io*, char*); void pstr(Io*, char*); void pcmd(Io*, Tree*); void pval(Io*, Word*); void pfnc(Io*, Thread*); void pfmt(Io*, char*, ...);