parent
e1599341bf
commit
84f7999dc0
@ -0,0 +1,256 @@
|
||||
#ifndef _STDIO_H
|
||||
#define _STDIO_H
|
||||
|
||||
/* s t d i o
|
||||
*
|
||||
* Author: C. E. Chew
|
||||
* Date: August 1989
|
||||
*
|
||||
* (C) Copyright C E Chew
|
||||
*
|
||||
* Feel free to copy, use and distribute this software provided:
|
||||
*
|
||||
* 1. you do not pretend that you wrote it
|
||||
* 2. you leave this copyright notice intact.
|
||||
*
|
||||
* Definitions and user interface for the stream io package.
|
||||
*
|
||||
* Patchlevel 2.0
|
||||
*
|
||||
* Edit History:
|
||||
*/
|
||||
|
||||
/* Site specific definitions */
|
||||
/*@*/
|
||||
#ifndef NULL
|
||||
# define NULL ((void *)0)
|
||||
#endif
|
||||
#define _STDIO_UCHAR_ 0
|
||||
#define _STDIO_VA_LIST_ char *
|
||||
#define _STDIO_SIZE_T_ unsigned int /* type returned by sizeof */
|
||||
#define _STDIO_USIZE_T_ unsigned int
|
||||
/*=*/
|
||||
|
||||
/* Definitions based on ANSI compiler */
|
||||
#ifdef __STDC__
|
||||
# ifndef _STDIO_P_
|
||||
# define _STDIO_P_(x) x
|
||||
# endif
|
||||
# ifndef _STDIO_VA_
|
||||
# define _STDIO_VA_ , ...
|
||||
# endif
|
||||
# ifndef _STDIO_UCHAR_
|
||||
# define _STDIO_UCHAR_ 0
|
||||
# endif
|
||||
#else
|
||||
# ifndef _STDIO_P_
|
||||
# define _STDIO_P_(x) ()
|
||||
# endif
|
||||
# ifndef _STDIO_VA_
|
||||
# define _STDIO_VA_
|
||||
# endif
|
||||
# ifndef _STDIO_UCHAR_
|
||||
# define _STDIO_UCHAR_ (0xff)
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#ifndef _STDIO_VA_LIST_
|
||||
# define _STDIO_VA_LIST_ void *
|
||||
#endif
|
||||
|
||||
#ifndef _STDIO_SIZE_T_
|
||||
# define _STDIO_SIZE_T_ unsigned int
|
||||
#endif
|
||||
|
||||
#ifndef _STDIO_USIZE_T_
|
||||
# define _STDIO_USIZE_T_ unsigned int
|
||||
#endif
|
||||
|
||||
/* ANSI Definitions */
|
||||
#define BUFSIZ 1024 /* default buffer size */
|
||||
|
||||
#ifndef NULL
|
||||
# define NULL ((void *) 0) /* null pointer */
|
||||
#endif
|
||||
|
||||
#define EOF (-1) /* eof flag */
|
||||
#define FOPEN_MAX 16 /* minimum guarantee */
|
||||
#define FILENAME_MAX 127 /* maximum length of file name */
|
||||
|
||||
#define SEEK_SET 0 /* seek from beginning */
|
||||
#define SEEK_CUR 1 /* seek from here */
|
||||
#define SEEK_END 2 /* seek from end */
|
||||
|
||||
#define TMP_MAX (0xffff) /* maximum number of temporaries */
|
||||
|
||||
#define L_tmpnam (5 + 8 + 4 + 1 + 1) /* length of temporary file name */
|
||||
|
||||
#ifndef _FPOS_T
|
||||
# define _FPOS_T
|
||||
typedef long fpos_t; /* stream positioning */
|
||||
#endif
|
||||
|
||||
#ifndef _SIZE_T
|
||||
# define _SIZE_T
|
||||
typedef _STDIO_SIZE_T_ size_t; /* sizeof type */
|
||||
#endif
|
||||
|
||||
#define _IOFBF 000000 /* fully buffered io */
|
||||
#define _IOREAD 000001 /* opened for reading */
|
||||
#define _IOWRITE 000002 /* opened for writing */
|
||||
#define _IONBF 000004 /* unbuffered */
|
||||
#define _IOMYBUF 000010 /* allocated buffer */
|
||||
#define _IOPOOLBUF 000020 /* buffer belongs to pool */
|
||||
#define _IOEOF 000040 /* eof encountered */
|
||||
#define _IOERR 000100 /* error encountered */
|
||||
#define _IOSTRING 000200 /* strings */
|
||||
#define _IOLBF 000400 /* line buffered */
|
||||
#define _IORW 001000 /* opened for reading and writing */
|
||||
#define _IOAPPEND 002000 /* append mode */
|
||||
#define _IOINSERT 004000 /* insert into __iop chain */
|
||||
#define _IOSTDX 030000 /* standard stream */
|
||||
|
||||
#define _IOSTDIN 010000 /* stdin indication */
|
||||
#define _IOSTDOUT 020000 /* stdout indication */
|
||||
#define _IOSTDERR 030000 /* stderr indication */
|
||||
|
||||
#define _IORETAIN (_IOSTDX | _IOINSERT) /* flags to be retained */
|
||||
|
||||
/* Implementation Definitions */
|
||||
|
||||
typedef char __stdiobuf_t; /* stdio buffer type */
|
||||
typedef _STDIO_USIZE_T_ __stdiosize_t; /* unsigned size_t */
|
||||
|
||||
typedef struct __iobuf {
|
||||
__stdiobuf_t *__rptr; /* pointer into read buffer */
|
||||
__stdiobuf_t *__rend; /* point at end of read buffer */
|
||||
__stdiobuf_t *__wptr; /* pointer into write buffer */
|
||||
__stdiobuf_t *__wend; /* point at end of write buffer */
|
||||
__stdiobuf_t *__base; /* base of buffer */
|
||||
__stdiosize_t __bufsiz; /* size of buffer */
|
||||
short __flag; /* flags */
|
||||
char __file; /* channel number */
|
||||
__stdiobuf_t __buf; /* small buffer */
|
||||
int (*__filbuf) _STDIO_P_((struct __iobuf *)); /* fill input buffer */
|
||||
int (*__flsbuf) _STDIO_P_((int, struct __iobuf *)); /* flush output buffer */
|
||||
int (*__flush) _STDIO_P_((struct __iobuf *)); /* flush buffer */
|
||||
struct __iobuf *__next; /* next in chain */
|
||||
} FILE;
|
||||
|
||||
extern FILE __stdin; /* stdin */
|
||||
extern FILE __stdout; /* stdout */
|
||||
extern FILE __stderr; /* stderr */
|
||||
|
||||
#define stdin (&__stdin)
|
||||
#define stdout (&__stdout)
|
||||
#define stderr (&__stderr)
|
||||
|
||||
/* ANSI Stdio Requirements */
|
||||
|
||||
int getc _STDIO_P_((FILE *));
|
||||
#if _STDIO_UCHAR_
|
||||
# define getc(p) ((p)->__rptr>=(p)->__rend\
|
||||
?(*(p)->__filbuf)(p)\
|
||||
:(int)(*(p)->__rptr++&_STDIO_UCHAR_))
|
||||
#else
|
||||
# define getc(p) ((p)->__rptr>=(p)->__rend\
|
||||
?(*(p)->__filbuf)(p)\
|
||||
:(int)((unsigned char)(*(p)->__rptr++)))
|
||||
#endif
|
||||
|
||||
int getchar _STDIO_P_((void));
|
||||
#define getchar() getc(stdin)
|
||||
|
||||
int putc _STDIO_P_((int, FILE *));
|
||||
#if _STDIO_UCHAR_
|
||||
# define putc(x,p) ((p)->__wptr>=(p)->__wend\
|
||||
?(*(p)->__flsbuf)((x),(p))\
|
||||
:(int)(*(p)->__wptr++=(x)&_STDIO_UCHAR_))
|
||||
#else
|
||||
# define putc(x,p) ((p)->__wptr>=(p)->__wend\
|
||||
?(*(p)->__flsbuf)((x),(p))\
|
||||
:(int)((unsigned char)(*(p)->__wptr++=(x))))
|
||||
#endif
|
||||
|
||||
int putchar _STDIO_P_((int));
|
||||
#define putchar(x) putc(x,stdout)
|
||||
|
||||
int feof _STDIO_P_((FILE *));
|
||||
#define feof(p) (((p)->__flag&_IOEOF)!=0)
|
||||
|
||||
int ferror _STDIO_P_((FILE *));
|
||||
#define ferror(p) (((p)->__flag&_IOERR)!=0)
|
||||
|
||||
void clearerr _STDIO_P_((FILE *));
|
||||
#define clearerr(p) ((p)->__flag&=~(_IOEOF|_IOERR))
|
||||
|
||||
FILE *fopen _STDIO_P_((const char *, const char *));
|
||||
FILE *freopen _STDIO_P_((const char *, const char *, FILE *));
|
||||
int fflush _STDIO_P_((FILE *));
|
||||
int fclose _STDIO_P_((FILE *));
|
||||
|
||||
int fgetpos _STDIO_P_((FILE *, fpos_t *));
|
||||
int fsetpos _STDIO_P_((FILE *, fpos_t *));
|
||||
long ftell _STDIO_P_((FILE *));
|
||||
int fseek _STDIO_P_((FILE *, long, int));
|
||||
void rewind _STDIO_P_((FILE *));
|
||||
|
||||
int fgetc _STDIO_P_((FILE *));
|
||||
int fputc _STDIO_P_((int, FILE *));
|
||||
__stdiosize_t fread _STDIO_P_((void *, __stdiosize_t,
|
||||
__stdiosize_t, FILE *));
|
||||
__stdiosize_t fwrite _STDIO_P_((void *, __stdiosize_t,
|
||||
__stdiosize_t, FILE *));
|
||||
|
||||
int getw _STDIO_P_((FILE *));
|
||||
int putw _STDIO_P_((int, FILE *));
|
||||
char *gets _STDIO_P_((char *));
|
||||
char *fgets _STDIO_P_((char *, int, FILE *));
|
||||
int puts _STDIO_P_((const char *));
|
||||
int fputs _STDIO_P_((const char *, FILE *));
|
||||
|
||||
int ungetc _STDIO_P_((int, FILE *));
|
||||
|
||||
int printf _STDIO_P_((const char * _STDIO_VA_));
|
||||
int fprintf _STDIO_P_((FILE *, const char * _STDIO_VA_));
|
||||
int sprintf _STDIO_P_((char *, const char * _STDIO_VA_));
|
||||
int vprintf _STDIO_P_((const char *, _STDIO_VA_LIST_));
|
||||
int vfprintf _STDIO_P_((FILE *, const char *, _STDIO_VA_LIST_));
|
||||
int vsprintf _STDIO_P_((char *, const char *, _STDIO_VA_LIST_));
|
||||
int scanf _STDIO_P_((const char * _STDIO_VA_));
|
||||
int fscanf _STDIO_P_((FILE *, const char * _STDIO_VA_));
|
||||
int sscanf _STDIO_P_((const char *, const char * _STDIO_VA_));
|
||||
|
||||
void setbuf _STDIO_P_((FILE *, char *));
|
||||
int setvbuf _STDIO_P_((FILE *, char *, int, __stdiosize_t));
|
||||
|
||||
int rename _STDIO_P_((const char *, const char *));
|
||||
int remove _STDIO_P_((const char *));
|
||||
|
||||
void perror _STDIO_P_((const char *));
|
||||
|
||||
char * tmpnam _STDIO_P_((char *));
|
||||
FILE * tmpfile _STDIO_P_((void));
|
||||
|
||||
/* Posix Definitions */
|
||||
int unlink _STDIO_P_((const char *));
|
||||
#define remove(x) unlink((x))
|
||||
|
||||
#define L_ctermid 9
|
||||
char * ctermid _STDIO_P_((char *s));
|
||||
|
||||
#define L_cuserid 9
|
||||
char * cuserid _STDIO_P_((char *s));
|
||||
|
||||
FILE *fdopen _STDIO_P_((int, const char *));
|
||||
|
||||
int fileno _STDIO_P_((FILE *));
|
||||
#define fileno(p) ((p)->__file)
|
||||
|
||||
#undef _STDIO_P_
|
||||
#undef _STDIO_VA_
|
||||
#undef _STDIO_VA_LIST_
|
||||
/*ndef _STDIO_UCHAR_*/
|
||||
#undef _STDIO_SIZE_T_
|
||||
#undef _STDIO_USIZE_T_
|
||||
#endif
|
Loading…
Reference in new issue