/*** *stdio.h - definitions/declarations for standard I/O routines * * Copyright (c) 1985-1992, Microsoft Corporation. All rights reserved. * *Purpose: * This file defines the structures, values, macros, and functions * used by the level 2 I/O ("standard I/O") routines. * [ANSI/System V] * ****/ #ifndef _INC_STDIO #ifdef __cplusplus extern "C" { #endif #if (_MSC_VER <= 600) #define __cdecl _cdecl #define __far _far #define __near _near #endif #ifndef _SIZE_T_DEFINED typedef unsigned int size_t; #define _SIZE_T_DEFINED #endif #ifndef _VA_LIST_DEFINED typedef char *va_list; #define _VA_LIST_DEFINED #endif /* buffered I/O macros */ #define BUFSIZ 512 #ifdef _MT #define _NFILE 40 #else #define _NFILE 20 #endif #define EOF (-1) #ifndef _FILE_DEFINED #pragma pack(2) struct _iobuf { char *_ptr; int _cnt; char *_base; char _flag; char _file; }; typedef struct _iobuf FILE; #pragma pack() #define _FILE_DEFINED #endif /* _P_tmpnam: Directory where temporary files may be created. * L_tmpnam size = size of _P_tmpdir * + 1 (in case _P_tmpdir does not end in "\\") * + 6 (for the temp number string) * + 1 (for the null terminator) */ #define _P_tmpdir "\\" #define L_tmpnam sizeof(_P_tmpdir)+8 /* fseek constants */ #define SEEK_CUR 1 #define SEEK_END 2 #define SEEK_SET 0 /* minimum guaranteed filename length, open file count, and unique * tmpnam filenames. */ #define FILENAME_MAX 128 #define FOPEN_MAX 18 #define TMP_MAX 32767 #define _SYS_OPEN 20 /* define NULL pointer value */ #ifndef NULL #ifdef __cplusplus #define NULL 0 #else #define NULL ((void *)0) #endif #endif /* declare _iob[] array */ #ifndef _STDIO_DEFINED extern FILE __near __cdecl _iob[]; #endif /* define file position type */ #ifndef _FPOS_T_DEFINED typedef long fpos_t; #define _FPOS_T_DEFINED #endif /* standard file pointers */ #ifndef _WINDLL #define stdin (&_iob[0]) #define stdout (&_iob[1]) #define stderr (&_iob[2]) #endif #ifndef _WINDOWS #define _stdaux (&_iob[3]) #define _stdprn (&_iob[4]) #endif #define _IOREAD 0x01 #define _IOWRT 0x02 #define _IOFBF 0x0 #define _IOLBF 0x40 #define _IONBF 0x04 #define _IOMYBUF 0x08 #define _IOEOF 0x10 #define _IOERR 0x20 #define _IOSTRG 0x40 #define _IORW 0x80 #ifdef _WINDOWS #ifndef _WINDLL #ifndef _WINFO_DEFINED /* interface version number */ #define _QWINVER 0 /* max number of windows */ #define _WFILE 20 /* values for windows screen buffer size */ #define _WINBUFINF 0 #define _WINBUFDEF -1 /* size/move settings */ #define _WINSIZEMIN 1 #define _WINSIZEMAX 2 #define _WINSIZERESTORE 3 #define _WINSIZECHAR 4 /* size/move query types */ #define _WINMAXREQ 100 #define _WINCURRREQ 101 /* values for closing window */ #define _WINPERSIST 1 #define _WINNOPERSIST 0 /* pseudo file handle for frame window */ #define _WINFRAMEHAND -1 /* menu items */ #define _WINSTATBAR 1 #define _WINTILE 2 #define _WINCASCADE 3 #define _WINARRANGE 4 /* quickwin exit options */ #define _WINEXITPROMPT 1 #define _WINEXITNOPERSIST 2 #define _WINEXITPERSIST 3 /* open structure */ #pragma pack(2) struct _wopeninfo { unsigned int _version; const char __far * _title; long _wbufsize; }; #pragma pack() /* size/move structure */ struct _wsizeinfo { unsigned int _version; unsigned int _type; unsigned int _x; unsigned int _y; unsigned int _h; unsigned int _w; }; #define _WINFO_DEFINED #endif #endif #endif /* function prototypes */ #ifndef _STDIO_DEFINED int __cdecl _filbuf(FILE *); int __cdecl _flsbuf(int, FILE *); FILE * __cdecl _fsopen(const char *, const char *, int); void __cdecl clearerr(FILE *); int __cdecl fclose(FILE *); int __cdecl _fcloseall(void); FILE * __cdecl _fdopen(int, const char *); int __cdecl feof(FILE *); int __cdecl ferror(FILE *); int __cdecl fflush(FILE *); int __cdecl fgetc(FILE *); #ifndef _WINDLL int __cdecl _fgetchar(void); #endif int __cdecl fgetpos(FILE *, fpos_t *); char * __cdecl fgets(char *, int, FILE *); int __cdecl _fileno(FILE *); int __cdecl _flushall(void); FILE * __cdecl fopen(const char *, const char *); int __cdecl fprintf(FILE *, const char *, ...); int __cdecl fputc(int, FILE *); #ifndef _WINDLL int __cdecl _fputchar(int); #endif int __cdecl fputs(const char *, FILE *); size_t __cdecl fread(void *, size_t, size_t, FILE *); FILE * __cdecl freopen(const char *, const char *, FILE *); #ifndef _WINDLL int __cdecl fscanf(FILE *, const char *, ...); #endif int __cdecl fsetpos(FILE *, const fpos_t *); int __cdecl fseek(FILE *, long, int); long __cdecl ftell(FILE *); #ifdef _WINDOWS #ifndef _WINDLL FILE * __cdecl _fwopen(struct _wopeninfo *, struct _wsizeinfo *, const char *); #endif #endif size_t __cdecl fwrite(const void *, size_t, size_t, FILE *); int __cdecl getc(FILE *); #ifndef _WINDLL int __cdecl getchar(void); char * __cdecl gets(char *); #endif int __cdecl _getw(FILE *); #ifndef _WINDLL void __cdecl perror(const char *); #endif #ifndef _WINDLL int __cdecl printf(const char *, ...); #endif int __cdecl putc(int, FILE *); #ifndef _WINDLL int __cdecl putchar(int); int __cdecl puts(const char *); #endif int __cdecl _putw(int, FILE *); int __cdecl remove(const char *); int __cdecl rename(const char *, const char *); void __cdecl rewind(FILE *); int __cdecl _rmtmp(void); #ifndef _WINDLL int __cdecl scanf(const char *, ...); #endif void __cdecl setbuf(FILE *, char *); int __cdecl setvbuf(FILE *, char *, int, size_t); int __cdecl _snprintf(char *, size_t, const char *, ...); int __cdecl sprintf(char *, const char *, ...); #ifndef _WINDLL int __cdecl sscanf(const char *, const char *, ...); #endif char * __cdecl _tempnam(char *, char *); FILE * __cdecl tmpfile(void); char * __cdecl tmpnam(char *); int __cdecl ungetc(int, FILE *); int __cdecl _unlink(const char *); int __cdecl vfprintf(FILE *, const char *, va_list); #ifndef _WINDLL int __cdecl vprintf(const char *, va_list); #endif int __cdecl _vsnprintf(char *, size_t, const char *, va_list); int __cdecl vsprintf(char *, const char *, va_list); #define _STDIO_DEFINED #endif /* macro definitions */ #define feof(_stream) ((_stream)->_flag & _IOEOF) #define ferror(_stream) ((_stream)->_flag & _IOERR) #define _fileno(_stream) ((int)(unsigned char)(_stream)->_file) #define getc(_stream) (--(_stream)->_cnt >= 0 ? 0xff & *(_stream)->_ptr++ \ : _filbuf(_stream)) #define putc(_c,_stream) (--(_stream)->_cnt >= 0 \ ? 0xff & (*(_stream)->_ptr++ = (char)(_c)) : _flsbuf((_c),(_stream))) #ifndef _WINDLL #define getchar() getc(stdin) #define putchar(_c) putc((_c),stdout) #endif #ifdef _MT #undef getc #undef putc #undef getchar #undef putchar #endif #ifndef __STDC__ /* Non-ANSI names for compatibility */ #define P_tmpdir _P_tmpdir #define SYS_OPEN _SYS_OPEN #ifndef _WINDOWS #define stdaux _stdaux #define stdprn _stdprn #endif int __cdecl fcloseall(void); FILE * __cdecl fdopen(int, const char *); #ifndef _WINDLL int __cdecl fgetchar(void); #endif int __cdecl fileno(FILE *); int __cdecl flushall(void); #ifndef _WINDLL int __cdecl fputchar(int); #endif int __cdecl getw(FILE *); int __cdecl putw(int, FILE *); int __cdecl rmtmp(void); char * __cdecl tempnam(char *, char *); int __cdecl unlink(const char *); #endif #ifdef __cplusplus } #endif #define _INC_STDIO #endif