NT4/private/crtlib/include/stdio.h
2020-09-30 17:12:29 +02:00

348 lines
7.7 KiB
C

/***
*stdio.h - definitions/declarations for standard I/O routines
*
* Copyright (c) 1985-1993, 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
/*
* Conditional macro definition for function calling type and variable type
* qualifiers.
*/
#if ( (_MSC_VER >= 800) && (_M_IX86 >= 300) )
/*
* Definitions for MS C8-32 (386/486) compiler
*/
#define _CRTAPI1 __cdecl
#define _CRTAPI2 __cdecl
#else
/*
* Other compilers (e.g., MIPS)
*/
#define _CRTAPI1
#define _CRTAPI2
#endif
#ifndef _SIZE_T_DEFINED
typedef unsigned int size_t;
#define _SIZE_T_DEFINED
#endif
#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
#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 */
#define BUFSIZ 512
/*
* Number of supported streams. _NFILE is confusing and obsolete, but
* supported anyway for backwards compatibility.
*/
#define _NFILE _NSTREAM_
#ifdef _MT
#define _NSTREAM_ 40
#else
#define _NSTREAM_ 20
#endif
#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
/* Directory where temporary files may be created. */
#ifdef _POSIX_
#define _P_tmpdir "/"
#else
#define _P_tmpdir "\\"
#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
#ifdef _POSIX_
#define L_ctermid 9
#define L_cuserid 32
#endif
#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 _DLL
extern FILE * _iob;
#else
extern FILE _iob[];
#endif
#endif
/* define file position type */
#ifndef _FPOS_T_DEFINED
typedef long fpos_t;
#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
int _CRTAPI1 _filbuf(FILE *);
int _CRTAPI1 _flsbuf(int, FILE *);
#ifdef _POSIX_
FILE * _CRTAPI1 _fsopen(const char *, const char *);
#else
FILE * _CRTAPI1 _fsopen(const char *, const char *, int);
#endif
void _CRTAPI1 clearerr(FILE *);
int _CRTAPI1 fclose(FILE *);
int _CRTAPI1 _fcloseall(void);
#ifdef _POSIX_
FILE * _CRTAPI1 fdopen(int, const char *);
#else
FILE * _CRTAPI1 _fdopen(int, const char *);
#endif
int _CRTAPI1 feof(FILE *);
int _CRTAPI1 ferror(FILE *);
int _CRTAPI1 fflush(FILE *);
int _CRTAPI1 fgetc(FILE *);
int _CRTAPI1 _fgetchar(void);
int _CRTAPI1 fgetpos(FILE *, fpos_t *);
char * _CRTAPI1 fgets(char *, int, FILE *);
#ifdef _POSIX_
int _CRTAPI1 fileno(FILE *);
#else
int _CRTAPI1 _fileno(FILE *);
#endif
int _CRTAPI1 _flushall(void);
FILE * _CRTAPI1 fopen(const char *, const char *);
int _CRTAPI2 fprintf(FILE *, const char *, ...);
int _CRTAPI1 fputc(int, FILE *);
int _CRTAPI1 _fputchar(int);
int _CRTAPI1 fputs(const char *, FILE *);
size_t _CRTAPI1 fread(void *, size_t, size_t, FILE *);
FILE * _CRTAPI1 freopen(const char *, const char *, FILE *);
int _CRTAPI2 fscanf(FILE *, const char *, ...);
int _CRTAPI1 fsetpos(FILE *, const fpos_t *);
int _CRTAPI1 fseek(FILE *, long, int);
long _CRTAPI1 ftell(FILE *);
size_t _CRTAPI1 fwrite(const void *, size_t, size_t, FILE *);
int _CRTAPI1 getc(FILE *);
int _CRTAPI1 getchar(void);
char * _CRTAPI1 gets(char *);
int _CRTAPI1 _getw(FILE *);
void _CRTAPI1 perror(const char *);
int _CRTAPI1 _pclose(FILE *);
FILE * _CRTAPI1 _popen(const char *, const char *);
int _CRTAPI2 printf(const char *, ...);
int _CRTAPI1 putc(int, FILE *);
int _CRTAPI1 putchar(int);
int _CRTAPI1 puts(const char *);
int _CRTAPI1 _putw(int, FILE *);
int _CRTAPI1 remove(const char *);
int _CRTAPI1 rename(const char *, const char *);
void _CRTAPI1 rewind(FILE *);
int _CRTAPI1 _rmtmp(void);
int _CRTAPI2 scanf(const char *, ...);
void _CRTAPI1 setbuf(FILE *, char *);
int _CRTAPI1 setvbuf(FILE *, char *, int, size_t);
int _CRTAPI2 _snprintf(char *, size_t, const char *, ...);
int _CRTAPI2 sprintf(char *, const char *, ...);
int _CRTAPI2 sscanf(const char *, const char *, ...);
char * _CRTAPI1 _tempnam(char *, char *);
FILE * _CRTAPI1 tmpfile(void);
char * _CRTAPI1 tmpnam(char *);
int _CRTAPI1 ungetc(int, FILE *);
int _CRTAPI1 _unlink(const char *);
int _CRTAPI1 vfprintf(FILE *, const char *, va_list);
int _CRTAPI1 vprintf(const char *, va_list);
int _CRTAPI1 _vsnprintf(char *, size_t, const char *, va_list);
int _CRTAPI1 vsprintf(char *, const char *, va_list);
#if !__STDC__
#ifndef _WSTDIO_DEFINED
/* declared in wchar.h, officially */
wint_t _CRTAPI1 fgetwc(FILE *);
wint_t _CRTAPI1 _fgetwchar(void);
wint_t _CRTAPI1 fputwc(wint_t, FILE *);
wint_t _CRTAPI1 _fputwchar(wint_t);
wint_t _CRTAPI1 getwc(FILE *);
wint_t _CRTAPI1 getwchar(void);
wint_t _CRTAPI1 putwc(wint_t, FILE *);
wint_t _CRTAPI1 putwchar(wint_t);
wint_t _CRTAPI1 ungetwc(wint_t, FILE *);
int _CRTAPI2 fwprintf(FILE *, const wchar_t *, ...);
int _CRTAPI2 wprintf(const wchar_t *, ...);
int _CRTAPI2 _snwprintf(wchar_t *, size_t, const wchar_t *, ...);
int _CRTAPI2 swprintf(wchar_t *, const wchar_t *, ...);
int _CRTAPI1 vfwprintf(FILE *, const wchar_t *, va_list);
int _CRTAPI1 vwprintf(const wchar_t *, va_list);
int _CRTAPI1 _vsnwprintf(wchar_t *, size_t, const wchar_t *, va_list);
int _CRTAPI1 vswprintf(wchar_t *, const wchar_t *, va_list);
int _CRTAPI2 fwscanf(FILE *, const wchar_t *, ...);
int _CRTAPI2 swscanf(const wchar_t *, const wchar_t *, ...);
int _CRTAPI2 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)
#define _WSTDIO_DEFINED
#endif
#endif /* !__STDC__ */
#define _STDIO_DEFINED
#endif
/* 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
#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 _unlink
#endif /* __STDC__ */
#ifdef __cplusplus
}
#endif
#define _INC_STDIO
#endif /* _INC_STDIO */