[5559] in Athena Bugs
ANSI
daemon@ATHENA.MIT.EDU (John Carr)
Tue Jul 17 16:46:35 1990
To: bugs@ATHENA.MIT.EDU
Date: Tue, 17 Jul 90 16:46:22 EDT
From: John Carr <jfc@ATHENA.MIT.EDU>
This file should replace <stdio.h> on VAX and RT. Possibly some of
the (char *) should be (void *); this will require changes to the C
library source that I have not yet made.
----------------------------------------------------------------
/*
* Copyright (c) 1980 Regents of the University of California.
* All rights reserved. The Berkeley software License Agreement
* specifies the terms and conditions for redistribution.
*
* @(#)stdio.h 5.4 (Berkeley) 10/22/87
*/
# ifndef FILE
#define BUFSIZ 1024
extern struct _iobuf {
int _cnt;
char *_ptr; /* should be unsigned char */
char *_base; /* ditto */
int _bufsiz;
short _flag;
char _file; /* should be short */
} _iob[];
#define _IOREAD 01
#define _IOWRT 02
#define _IONBF 04
#define _IOMYBUF 010
#define _IOEOF 020
#define _IOERR 040
#define _IOSTRG 0100
#define _IOLBF 0200
#define _IORW 0400
#define NULL 0
#define FILE struct _iobuf
#define EOF (-1)
#define stdin (&_iob[0])
#define stdout (&_iob[1])
#define stderr (&_iob[2])
#define getc(p) (--(p)->_cnt>=0? (int)(*(unsigned char *)(p)->_ptr++):_filbuf(p))
#define getchar() getc(stdin)
#define putc(x, p) (--(p)->_cnt >= 0 ?\
(int)(*(unsigned char *)(p)->_ptr++ = (x)) :\
(((p)->_flag & _IOLBF) && -(p)->_cnt < (p)->_bufsiz ?\
((*(p)->_ptr = (x)) != '\n' ?\
(int)(*(unsigned char *)(p)->_ptr++) :\
_flsbuf(*(unsigned char *)(p)->_ptr, p)) :\
_flsbuf((unsigned char)(x), p)))
#define putchar(x) putc(x,stdout)
#define feof(p) (((p)->_flag&_IOEOF)!=0)
#define ferror(p) (((p)->_flag&_IOERR)!=0)
#define fileno(p) ((p)->_file)
#define clearerr(p) ((p)->_flag &= ~(_IOERR|_IOEOF))
#ifdef __STDC__
extern FILE *fopen(const char *, const char *);
extern FILE *fdopen(int, const char *);
extern FILE *freopen(const char *, const char *, FILE *);
extern FILE *popen(const char *, const char *);
extern int pclose(FILE *);
extern long ftell(FILE *);
extern int fseek(FILE *, long, int);
extern char *fgets(char *, int, FILE *);
extern char *gets(char *);
extern int fclose(FILE *), fflush(FILE *);
extern int puts(const char *), fputs(const char *, FILE *);
extern int fprintf(FILE *, const char *, ...);
extern int sprintf(char *, const char *, ...);
extern int printf(const char *, ...);
extern int scanf(const char *, ...);
extern int sscanf(char *, const char *, ...);
extern int fscanf(FILE *, const char *, ...);
extern int fgetc(FILE *);
extern void perror(const char *);
extern int fwrite(const char *, unsigned int, unsigned int, FILE *);
extern int fread(char *, unsigned int, unsigned int, FILE *);
extern int _filbuf(FILE *);
extern int _flsbuf(unsigned char, FILE *);
#else
extern FILE *fopen(), *fdopen(), *freopen(), *popen();
extern int pclose(), ftell(), fseek(), fclose(), fflush();
extern char *fgets(), *gets();
extern long ftell();
extern int fseek(), fclose(), fflush(), puts(), fputs();
extern int fprintf(), sprintf(), printf(), scanf(), sscanf();
extern int fscanf(), fgetc(), perror(), fwrite(), fread();
#endif /* __STDC__ */
#endif /* FILE */
----------------------------------------------------------------