[5559] in Athena Bugs

home help back first fref pref prev next nref lref last post

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 */
----------------------------------------------------------------

home help back first fref pref prev next nref lref last post