353 lines
7.3 KiB
C
353 lines
7.3 KiB
C
/***
|
|
*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
|