1 /* 2 * Copyright (c) 1980 Regents of the University of California. 3 * All rights reserved. The Berkeley software License Agreement 4 * specifies the terms and conditions for redistribution. 5 * 6 * @(#)stdio.h 5.4 (Berkeley) 10/22/87 7 */ 8 9 # ifndef FILE 10 #define BUFSIZ 1024 11 extern struct _iobuf { 12 int _cnt; 13 char *_ptr; /* should be unsigned char */ 14 char *_base; /* ditto */ 15 int _bufsiz; 16 short _flag; 17 char _file; /* should be short */ 18 } _iob[]; 19 20 #define _IOREAD 01 21 #define _IOWRT 02 22 #define _IONBF 04 23 #define _IOMYBUF 010 24 #define _IOEOF 020 25 #define _IOERR 040 26 #define _IOSTRG 0100 27 #define _IOLBF 0200 28 #define _IORW 0400 29 #define NULL 0 30 #define FILE struct _iobuf 31 #define EOF (-1) 32 33 #define stdin (&_iob[0]) 34 #define stdout (&_iob[1]) 35 #define stderr (&_iob[2]) 36 #ifndef lint 37 #define getc(p) (--(p)->_cnt>=0? (int)(*(unsigned char *)(p)->_ptr++):_filbuf(p)) 38 #endif not lint 39 #define getchar() getc(stdin) 40 #ifndef lint 41 #define putc(x, p) (--(p)->_cnt >= 0 ?\ 42 (int)(*(unsigned char *)(p)->_ptr++ = (x)) :\ 43 (((p)->_flag & _IOLBF) && -(p)->_cnt < (p)->_bufsiz ?\ 44 ((*(p)->_ptr = (x)) != '\n' ?\ 45 (int)(*(unsigned char *)(p)->_ptr++) :\ 46 _flsbuf(*(unsigned char *)(p)->_ptr, p)) :\ 47 _flsbuf((unsigned char)(x), p))) 48 #endif not lint 49 #define putchar(x) putc(x,stdout) 50 #define feof(p) (((p)->_flag&_IOEOF)!=0) 51 #define ferror(p) (((p)->_flag&_IOERR)!=0) 52 #define fileno(p) ((p)->_file) 53 #define clearerr(p) ((p)->_flag &= ~(_IOERR|_IOEOF)) 54 55 FILE *fopen(); 56 FILE *fdopen(); 57 FILE *freopen(); 58 FILE *popen(); 59 long ftell(); 60 char *fgets(); 61 char *gets(); 62 int sprintf(); /* here until everyone does it right */ 63 # endif 64