home *** CD-ROM | disk | FTP | other *** search
- #if !defined(__TOPLEVEL_NEXT_COMMON_INCLUDE__)
- #define __TOPLEVEL_NEXT_COMMON_INCLUDE__
- #define __TOPLEVEL_STDIO_H_
- #include <next_common_defines.h>
- #endif /* __TOPLEVEL_NEXT_COMMON_INCLUDE__ */
-
- /***
- *stdio.h - definitions/declarations for standard I/O routines
- *
- * Copyright (c) 1985-1996, 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]
- *
- * [Public]
- *
- ****/
-
- #if _MSC_VER > 1000
- #pragma once
- #endif
-
- #ifndef _INC_STDIO
- #define _INC_STDIO
-
- #if !defined(_WIN32) && !defined(_MAC)
- #error ERROR: Only Mac or Win32 targets supported!
- #endif
-
-
- #ifdef _MSC_VER
- /*
- * Currently, all MS C compilers for Win32 platforms default to 8 byte
- * alignment.
- */
- #pragma pack(push,8)
- #endif /* _MSC_VER */
-
- #ifdef __cplusplus
- extern "C" {
- #endif
-
-
- /* Define _CRTAPI1 (for compatibility with the NT SDK) */
-
- #ifndef _CRTAPI1
- #if _MSC_VER >= 800 && _M_IX86 >= 300
- #define _CRTAPI1 __cdecl
- #else
- #define _CRTAPI1
- #endif
- #endif
-
-
- /* Define _CRTAPI2 (for compatibility with the NT SDK) */
-
- #ifndef _CRTAPI2
- #if _MSC_VER >= 800 && _M_IX86 >= 300
- #define _CRTAPI2 __cdecl
- #else
- #define _CRTAPI2
- #endif
- #endif
-
-
- /* Define _CRTIMP */
-
- #ifndef _CRTIMP
- #ifdef _NTSDK
- /* definition compatible with NT SDK */
- #define _CRTIMP
- #else /* ndef _NTSDK */
- /* current definition */
- #ifdef _DLL
- #define _CRTIMP __declspec(dllimport)
- #else /* ndef _DLL */
- #define _CRTIMP
- #endif /* _DLL */
- #endif /* _NTSDK */
- #endif /* _CRTIMP */
-
-
- /* Define __cdecl for non-Microsoft compilers */
-
- #if ( !defined(_MSC_VER) && !defined(__cdecl) )
- #define __cdecl
- #endif
-
-
- #ifndef _SIZE_T_DEFINED
- typedef unsigned int size_t;
- #define _SIZE_T_DEFINED
- #endif
-
-
- #ifndef _MAC
- #ifndef _WCHAR_T_DEFINED
- typedef unsigned short wchar_t;
- #define _WCHAR_T_DEFINED
- #endif
-
-
- #ifndef _WCTYPE_T_DEFINED
- typedef wchar_t wint_t;
- typedef wchar_t wctype_t;
- #define _WCTYPE_T_DEFINED
- #endif
- #endif /* ndef _MAC */
-
-
- #ifndef _VA_LIST_DEFINED
- #ifdef _M_ALPHA
- typedef struct {
- char *a0; /* pointer to first homed integer argument */
- int offset; /* byte offset of next parameter */
- } va_list;
- #else
- typedef char * va_list;
- #endif
- #define _VA_LIST_DEFINED
- #endif
-
-
- /* Buffered I/O macros */
-
- #if defined(_M_MPPC)
- #define BUFSIZ 4096
- #else /* defined (_M_MPPC) */
- #define BUFSIZ 512
- #endif /* defined (_M_MPPC) */
-
-
- /*
- * Default number of supported streams. _NFILE is confusing and obsolete, but
- * supported anyway for backwards compatibility.
- */
- #define _NFILE _NSTREAM_
-
- #ifdef _WIN32
-
- #define _NSTREAM_ 512
-
- /*
- * Number of entries in _iob[] (declared below). Note that _NSTREAM_ must be
- * greater than or equal to _IOB_ENTRIES.
- */
- #define _IOB_ENTRIES 20
-
- #else /* ndef _WIN32 */
-
- #ifdef _DLL
- #define _NSTREAM_ 128
- #else
- #ifdef _MT
- #define _NSTREAM_ 40
- #else
- #define _NSTREAM_ 20
- #endif
- #endif /* _DLL */
-
- #endif /* ndef _MAC */
-
- #define EOF (-1)
-
-
- #ifndef _FILE_DEFINED
- struct _iobuf {
- char *_ptr;
- int _cnt;
- char *_base;
- int _flag;
- int _file;
- int _charbuf;
- int _bufsiz;
- char *_tmpfname;
- };
- typedef struct _iobuf FILE;
- #define _FILE_DEFINED
- #endif
-
- #if !defined(_M_MPPC) && !defined(_M_M68K)
-
- /* Directory where temporary files may be created. */
-
- #ifdef _POSIX_
- #define _P_tmpdir "/"
- #define _wP_tmpdir L"/"
- #else
- #define _P_tmpdir "\\"
- #define _wP_tmpdir L"\\"
- #endif
-
-
- /* L_tmpnam = size of P_tmpdir
- * + 1 (in case P_tmpdir does not end in "/")
- * + 12 (for the filename string)
- * + 1 (for the null terminator)
- */
- #define L_tmpnam sizeof(_P_tmpdir)+12
- #else /* defined(_M_M68K) || defined(_M_MPPC) */
- #define L_tmpnam 255
- #endif /* !defined(_M_M68K) && defined(_M_MPPC) */
-
-
- #ifdef _POSIX_
- #define L_ctermid 9
- #define L_cuserid 32
- #endif
-
-
- /* Seek method constants */
-
- #define SEEK_CUR 1
- #define SEEK_END 2
- #define SEEK_SET 0
-
-
- #define FILENAME_MAX 260
- #define FOPEN_MAX 20
- #define _SYS_OPEN 20
- #define TMP_MAX 32767
-
-
- /* Define NULL pointer value */
-
- #ifndef NULL
- #ifdef __cplusplus
- #define NULL 0
- #else
- #define NULL ((void *)0)
- #endif
- #endif
-
-
- /* Declare _iob[] array */
-
- #ifndef _STDIO_DEFINED
-
- #ifdef _NTSDK
-
- #ifdef _DLL
- extern FILE * _iob;
- #else
- extern FILE _iob[];
- #endif
-
- #else /* ndef _NTSDK */
-
- #if defined(_DLL) && defined(_M_IX86)
-
- #define _iob (__p__iob())
- _CRTIMP extern FILE * __cdecl __p__iob(void);
-
- #else /* !(defined(_DLL) && defined(_M_IX86)) */
-
- _CRTIMP extern FILE _iob[];
-
- #endif /* defined(_DLL) && defined(_M_IX86) */
-
- #endif /* _NTSDK */
-
- #endif /* _STDIO_DEFINED */
-
-
- /* Define file position type */
-
- #ifndef _FPOS_T_DEFINED
-
- #if defined(_M_MPPC) || defined(_M_M68K) || defined(_POSIX_)
-
- typedef long fpos_t;
-
- #else /* !defined(_M_MPPC) && !defined(_M_M68K) */
-
- #if !__STDC__ && _INTEGRAL_MAX_BITS >= 64
- typedef __int64 fpos_t;
- #else
- typedef struct fpos_t {
- unsigned int lopart;
- int hipart;
- } fpos_t;
- #endif
-
- #endif /* defined(_M_MPPC) || defined(_M_68K) */
-
- #define _FPOS_T_DEFINED
- #endif
-
-
- #define stdin (&_iob[0])
- #define stdout (&_iob[1])
- #define stderr (&_iob[2])
-
-
- #define _IOREAD 0x0001
- #define _IOWRT 0x0002
-
- #define _IOFBF 0x0000
- #define _IOLBF 0x0040
- #define _IONBF 0x0004
-
- #define _IOMYBUF 0x0008
- #define _IOEOF 0x0010
- #define _IOERR 0x0020
- #define _IOSTRG 0x0040
- #define _IORW 0x0080
- #ifdef _POSIX_
- #define _IOAPPEND 0x0200
- #endif
-
-
- /* Function prototypes */
-
- #ifndef _STDIO_DEFINED
-
- _CRTIMP int __cdecl _filbuf(FILE *);
- _CRTIMP int __cdecl _flsbuf(int, FILE *);
-
- #ifdef _POSIX_
- _CRTIMP FILE * __cdecl _fsopen(const char *, const char *);
- #else
- _CRTIMP FILE * __cdecl _fsopen(const char *, const char *, int);
- #endif
-
- _CRTIMP void __cdecl clearerr(FILE *);
- _CRTIMP int __cdecl fclose(FILE *);
- _CRTIMP int __cdecl _fcloseall(void);
-
- #ifdef _POSIX_
- _CRTIMP FILE * __cdecl fdopen(int, const char *);
- #else
- _CRTIMP FILE * __cdecl _fdopen(int, const char *);
- #endif
-
- _CRTIMP int __cdecl feof(FILE *);
- _CRTIMP int __cdecl ferror(FILE *);
- _CRTIMP int __cdecl fflush(FILE *);
- _CRTIMP int __cdecl fgetc(FILE *);
- _CRTIMP int __cdecl _fgetchar(void);
- _CRTIMP int __cdecl fgetpos(FILE *, fpos_t *);
- _CRTIMP char * __cdecl fgets(char *, int, FILE *);
-
- #ifdef _POSIX_
- _CRTIMP int __cdecl fileno(FILE *);
- #else
- _CRTIMP int __cdecl _fileno(FILE *);
- #endif
-
- _CRTIMP int __cdecl _flushall(void);
- _CRTIMP FILE * __cdecl fopen(const char *, const char *);
- _CRTIMP int __cdecl fprintf(FILE *, const char *, ...);
- _CRTIMP int __cdecl fputc(int, FILE *);
- _CRTIMP int __cdecl _fputchar(int);
- _CRTIMP int __cdecl fputs(const char *, FILE *);
- _CRTIMP size_t __cdecl fread(void *, size_t, size_t, FILE *);
- _CRTIMP FILE * __cdecl freopen(const char *, const char *, FILE *);
- _CRTIMP int __cdecl fscanf(FILE *, const char *, ...);
- _CRTIMP int __cdecl fsetpos(FILE *, const fpos_t *);
- _CRTIMP int __cdecl fseek(FILE *, long, int);
- _CRTIMP long __cdecl ftell(FILE *);
- _CRTIMP size_t __cdecl fwrite(const void *, size_t, size_t, FILE *);
- _CRTIMP int __cdecl getc(FILE *);
- _CRTIMP int __cdecl getchar(void);
- _CRTIMP int __cdecl _getmaxstdio(void);
- _CRTIMP char * __cdecl gets(char *);
- _CRTIMP int __cdecl _getw(FILE *);
- _CRTIMP void __cdecl perror(const char *);
- _CRTIMP int __cdecl _pclose(FILE *);
- _CRTIMP FILE * __cdecl _popen(const char *, const char *);
- _CRTIMP int __cdecl printf(const char *, ...);
- _CRTIMP int __cdecl putc(int, FILE *);
- _CRTIMP int __cdecl putchar(int);
- _CRTIMP int __cdecl puts(const char *);
- _CRTIMP int __cdecl _putw(int, FILE *);
- _CRTIMP int __cdecl remove(const char *);
- _CRTIMP int __cdecl rename(const char *, const char *);
- _CRTIMP void __cdecl rewind(FILE *);
- _CRTIMP int __cdecl _rmtmp(void);
- _CRTIMP int __cdecl scanf(const char *, ...);
- _CRTIMP void __cdecl setbuf(FILE *, char *);
- _CRTIMP int __cdecl _setmaxstdio(int);
- _CRTIMP int __cdecl setvbuf(FILE *, char *, int, size_t);
- _CRTIMP int __cdecl _snprintf(char *, size_t, const char *, ...);
- _CRTIMP int __cdecl sprintf(char *, const char *, ...);
- _CRTIMP int __cdecl sscanf(const char *, const char *, ...);
- _CRTIMP char * __cdecl _tempnam(const char *, const char *);
- _CRTIMP FILE * __cdecl tmpfile(void);
- _CRTIMP char * __cdecl tmpnam(char *);
- _CRTIMP int __cdecl ungetc(int, FILE *);
- _CRTIMP int __cdecl _unlink(const char *);
- _CRTIMP int __cdecl vfprintf(FILE *, const char *, va_list);
- _CRTIMP int __cdecl vprintf(const char *, va_list);
- _CRTIMP int __cdecl _vsnprintf(char *, size_t, const char *, va_list);
- _CRTIMP int __cdecl vsprintf(char *, const char *, va_list);
-
- #ifndef _MAC
- #ifndef _WSTDIO_DEFINED
-
- /* wide function prototypes, also declared in wchar.h */
-
- #ifndef WEOF
- #define WEOF (wint_t)(0xFFFF)
- #endif
-
- #ifdef _POSIX_
- _CRTIMP FILE * __cdecl _wfsopen(const wchar_t *, const wchar_t *);
- #else
- _CRTIMP FILE * __cdecl _wfsopen(const wchar_t *, const wchar_t *, int);
- #endif
-
- _CRTIMP wint_t __cdecl fgetwc(FILE *);
- _CRTIMP wint_t __cdecl _fgetwchar(void);
- _CRTIMP wint_t __cdecl fputwc(wint_t, FILE *);
- _CRTIMP wint_t __cdecl _fputwchar(wint_t);
- _CRTIMP wint_t __cdecl getwc(FILE *);
- _CRTIMP wint_t __cdecl getwchar(void);
- _CRTIMP wint_t __cdecl putwc(wint_t, FILE *);
- _CRTIMP wint_t __cdecl putwchar(wint_t);
- _CRTIMP wint_t __cdecl ungetwc(wint_t, FILE *);
-
- _CRTIMP wchar_t * __cdecl fgetws(wchar_t *, int, FILE *);
- _CRTIMP int __cdecl fputws(const wchar_t *, FILE *);
- _CRTIMP wchar_t * __cdecl _getws(wchar_t *);
- _CRTIMP int __cdecl _putws(const wchar_t *);
-
- _CRTIMP int __cdecl fwprintf(FILE *, const wchar_t *, ...);
- _CRTIMP int __cdecl wprintf(const wchar_t *, ...);
- _CRTIMP int __cdecl _snwprintf(wchar_t *, size_t, const wchar_t *, ...);
- _CRTIMP int __cdecl swprintf(wchar_t *, const wchar_t *, ...);
- _CRTIMP int __cdecl vfwprintf(FILE *, const wchar_t *, va_list);
- _CRTIMP int __cdecl vwprintf(const wchar_t *, va_list);
- _CRTIMP int __cdecl _vsnwprintf(wchar_t *, size_t, const wchar_t *, va_list);
- _CRTIMP int __cdecl vswprintf(wchar_t *, const wchar_t *, va_list);
- _CRTIMP int __cdecl fwscanf(FILE *, const wchar_t *, ...);
- _CRTIMP int __cdecl swscanf(const wchar_t *, const wchar_t *, ...);
- _CRTIMP int __cdecl wscanf(const wchar_t *, ...);
-
- #define getwchar() fgetwc(stdin)
- #define putwchar(_c) fputwc((_c),stdout)
- #define getwc(_stm) fgetwc(_stm)
- #define putwc(_c,_stm) fputwc(_c,_stm)
-
- _CRTIMP FILE * __cdecl _wfdopen(int, const wchar_t *);
- _CRTIMP FILE * __cdecl _wfopen(const wchar_t *, const wchar_t *);
- _CRTIMP FILE * __cdecl _wfreopen(const wchar_t *, const wchar_t *, FILE *);
- _CRTIMP void __cdecl _wperror(const wchar_t *);
- _CRTIMP FILE * __cdecl _wpopen(const wchar_t *, const wchar_t *);
- _CRTIMP int __cdecl _wremove(const wchar_t *);
- _CRTIMP wchar_t * __cdecl _wtempnam(const wchar_t *, const wchar_t *);
- _CRTIMP wchar_t * __cdecl _wtmpnam(wchar_t *);
-
-
- #define _WSTDIO_DEFINED
- #endif /* _WSTDIO_DEFINED */
- #endif /* ndef _MAC */
-
- #define _STDIO_DEFINED
- #endif /* _STDIO_DEFINED */
-
-
- /* Macro definitions */
-
- #define feof(_stream) ((_stream)->_flag & _IOEOF)
- #define ferror(_stream) ((_stream)->_flag & _IOERR)
- #define _fileno(_stream) ((_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)))
- #define getchar() getc(stdin)
- #define putchar(_c) putc((_c),stdout)
-
-
-
- #ifdef _MT
- #undef getc
- #undef putc
- #undef getchar
- #undef putchar
- #endif
-
-
-
- #if !__STDC__ && !defined(_POSIX_)
-
- /* Non-ANSI names for compatibility */
-
- #define P_tmpdir _P_tmpdir
- #define SYS_OPEN _SYS_OPEN
-
- #ifdef _NTSDK
-
- #define fcloseall _fcloseall
- #define fdopen _fdopen
- #define fgetchar _fgetchar
- #define fileno _fileno
- #define flushall _flushall
- #define fputchar _fputchar
- #define getw _getw
- #define putw _putw
- #define rmtmp _rmtmp
- #define tempnam _tempnam
- #define unlink(f) _unlink(f)
-
- #else /* ndef _NTSDK */
-
- _CRTIMP int __cdecl fcloseall(void);
- _CRTIMP FILE * __cdecl fdopen(int, const char *);
- _CRTIMP int __cdecl fgetchar(void);
- _CRTIMP int __cdecl fileno(FILE *);
- _CRTIMP int __cdecl flushall(void);
- _CRTIMP int __cdecl fputchar(int);
- _CRTIMP int __cdecl getw(FILE *);
- _CRTIMP int __cdecl putw(int, FILE *);
- _CRTIMP int __cdecl rmtmp(void);
- _CRTIMP char * __cdecl tempnam(const char *, const char *);
- _CRTIMP int __cdecl unlink(const char *);
-
- #endif /* _NTSDK */
-
- #endif /* __STDC__ */
-
- #ifdef __cplusplus
- }
- #endif
-
-
- #ifdef _MSC_VER
- #pragma pack(pop)
- #endif /* _MSC_VER */
-
- #endif /* _INC_STDIO */
-
- #if defined(__TOPLEVEL_STDIO_H_)
- #undef __TOPLEVEL_NEXT_COMMON_INCLUDE__
- #undef __TOPLEVEL_STDIO_H_
- #include <next_common_undefines.h>
- #endif /* __TOPLEVEL_STDIO_H_ */
-