3 * This file has no copyright assigned and is placed in the Public Domain.
4 * This file is a part of the mingw-runtime package.
5 * No warranty is given; refer to the file DISCLAIMER within the package.
7 * Definitions of types and prototypes of functions for standard input and
10 * NOTE: The file manipulation functions provided by Microsoft seem to
11 * work with either slash (/) or backslash (\) as the directory separator.
18 /* All the headers include this file. */
24 #define __need_wchar_t
27 #define __need___va_list
29 #endif /* Not RC_INVOKED */
32 /* Flags for the iobuf structure */
33 #define _IOREAD 1 /* currently reading */
34 #define _IOWRT 2 /* currently writing */
35 #define _IORW 0x0080 /* opened as "r+w" */
39 * The three standard file pointers provided by the run time library.
40 * NOTE: These will go to the bit-bucket silently in GUI applications!
42 #define STDIN_FILENO 0
43 #define STDOUT_FILENO 1
44 #define STDERR_FILENO 2
46 /* Returned by various functions on end of file condition or error. */
50 * The maximum length of a file name. You should use GetVolumeInformation
51 * instead of this constant. But hey, this works.
52 * Also defined in io.h.
55 #define FILENAME_MAX (260)
59 * The maximum number of files that may be open at once. I have set this to
60 * a conservative number. The actual value may be higher.
62 #define FOPEN_MAX (20)
64 /* After creating this many names, tmpnam and tmpfile return NULL */
67 * Tmpnam, tmpfile and, sometimes, _tempnam try to create
68 * temp files in the root directory of the current drive
69 * (not in pwd, as suggested by some older MS doc's).
70 * Redefining these macros does not effect the CRT functions.
72 #define _P_tmpdir "\\"
73 #ifndef __STRICT_ANSI__
74 #define P_tmpdir _P_tmpdir
76 #define _wP_tmpdir L"\\"
79 * The maximum size of name (including NUL) that will be put in the user
80 * supplied buffer caName for tmpnam.
81 * Inferred from the size of the static buffer returned by tmpnam
82 * when passed a NULL argument. May actually be smaller.
86 #define _IOFBF 0x0000 /* full buffered */
87 #define _IOLBF 0x0040 /* line buffered */
88 #define _IONBF 0x0004 /* not buffered */
90 #define _IOMYBUF 0x0008 /* stdio malloc()'d buffer */
91 #define _IOEOF 0x0010 /* EOF reached on read */
92 #define _IOERR 0x0020 /* I/O error from system */
93 #define _IOSTRG 0x0040 /* Strange or no file descriptor */
95 # define _IOAPPEND 0x0200
98 * The buffer size as used by setbuf such that it is equivalent to
99 * (void) setvbuf(fileSetBuffer, caBuffer, _IOFBF, BUFSIZ).
103 /* Constants for nOrigin indicating the position relative to which fseek
104 * sets the file position. Defined unconditionally since ISO and POSIX
105 * say they are defined here. */
114 #define __VALIST __gnuc_va_list
116 #define __VALIST char*
118 #endif /* defined __VALIST */
121 * The structure underlying the FILE type.
123 * Some believe that nobody in their right mind should make use of the
124 * internals of this structure. Provided by Pedro A. Aranda Gutiirrez
127 #ifndef _FILE_DEFINED
128 #define _FILE_DEFINED
129 typedef struct _iobuf
140 #endif /* Not _FILE_DEFINED */
144 * The standard file handles
146 #ifndef __DECLSPEC_SUPPORTED
148 extern FILE (*_imp___iob
)[]; /* A pointer to an array of FILE */
150 #define _iob (*_imp___iob) /* An array of FILE */
152 #else /* __DECLSPEC_SUPPORTED */
154 __MINGW_IMPORT
FILE _iob
[]; /* An array of FILE imported from DLL. */
156 #endif /* __DECLSPEC_SUPPORTED */
158 #define stdin (&_iob[STDIN_FILENO])
159 #define stdout (&_iob[STDOUT_FILENO])
160 #define stderr (&_iob[STDERR_FILENO])
169 _CRTIMP
FILE* __cdecl __MINGW_NOTHROW
fopen (const char*, const char*);
170 _CRTIMP
FILE* __cdecl __MINGW_NOTHROW
freopen (const char*, const char*, FILE*);
171 _CRTIMP
int __cdecl __MINGW_NOTHROW
fflush (FILE*);
172 _CRTIMP
int __cdecl __MINGW_NOTHROW
fclose (FILE*);
173 /* MS puts remove & rename (but not wide versions) in io.h also */
174 _CRTIMP
int __cdecl __MINGW_NOTHROW
remove (const char*);
175 _CRTIMP
int __cdecl __MINGW_NOTHROW
rename (const char*, const char*);
176 _CRTIMP
FILE* __cdecl __MINGW_NOTHROW
tmpfile (void);
177 _CRTIMP
char* __cdecl __MINGW_NOTHROW
tmpnam (char*);
179 #ifndef __STRICT_ANSI__
180 _CRTIMP
char* __cdecl __MINGW_NOTHROW
_tempnam (const char*, const char*);
181 _CRTIMP
int __cdecl __MINGW_NOTHROW
_rmtmp(void);
182 _CRTIMP
int __cdecl __MINGW_NOTHROW
_unlink (const char*);
185 _CRTIMP
char* __cdecl __MINGW_NOTHROW
tempnam (const char*, const char*);
186 _CRTIMP
int __cdecl __MINGW_NOTHROW
rmtmp(void);
187 _CRTIMP
int __cdecl __MINGW_NOTHROW
unlink (const char*);
189 #endif /* __STRICT_ANSI__ */
191 _CRTIMP
int __cdecl __MINGW_NOTHROW
setvbuf (FILE*, char*, int, size_t);
193 _CRTIMP
void __cdecl __MINGW_NOTHROW
setbuf (FILE*, char*);
198 * MSVCRT implementations are not ANSI C99 conformant...
199 * we offer these conforming alternatives from libmingwex.a
201 #undef __mingw_stdio_redirect__
202 #define __mingw_stdio_redirect__(F) __cdecl __MINGW_NOTHROW __mingw_##F
204 extern int __mingw_stdio_redirect__(fprintf
)(FILE*, const char*, ...);
205 extern int __mingw_stdio_redirect__(printf
)(const char*, ...);
206 extern int __mingw_stdio_redirect__(sprintf
)(char*, const char*, ...);
207 extern int __mingw_stdio_redirect__(snprintf
)(char*, size_t, const char*, ...);
208 extern int __mingw_stdio_redirect__(vfprintf
)(FILE*, const char*, __VALIST
);
209 extern int __mingw_stdio_redirect__(vprintf
)(const char*, __VALIST
);
210 extern int __mingw_stdio_redirect__(vsprintf
)(char*, const char*, __VALIST
);
211 extern int __mingw_stdio_redirect__(vsnprintf
)(char*, size_t, const char*, __VALIST
);
213 #if __USE_MINGW_ANSI_STDIO
215 * User has expressed a preference for C99 conformance...
217 # undef __mingw_stdio_redirect__
220 * For C++ we use inline implementations, to avoid interference
221 * with namespace qualification, which may result from using #defines.
223 # define __mingw_stdio_redirect__ static inline __cdecl __MINGW_NOTHROW
225 # elif defined __GNUC__
227 * FIXME: Is there any GCC version prerequisite here?
229 * We also prefer inline implementations for C, when we can be confident
230 * that the GNU specific __inline__ mechanism is supported.
232 # define __mingw_stdio_redirect__ static __inline__ __cdecl __MINGW_NOTHROW
236 * Can't use inlines; fall back on module local static stubs.
238 # define __mingw_stdio_redirect__ static __cdecl __MINGW_NOTHROW
241 __mingw_stdio_redirect__
242 int fprintf (FILE *__stream
, const char *__format
, ...)
244 register int __retval
;
245 __builtin_va_list __local_argv
; __builtin_va_start( __local_argv
, __format
);
246 __retval
= __mingw_vfprintf( __stream
, __format
, __local_argv
);
247 __builtin_va_end( __local_argv
);
251 __mingw_stdio_redirect__
252 int printf (const char *__format
, ...)
254 register int __retval
;
255 __builtin_va_list __local_argv
; __builtin_va_start( __local_argv
, __format
);
256 __retval
= __mingw_vprintf( __format
, __local_argv
);
257 __builtin_va_end( __local_argv
);
261 __mingw_stdio_redirect__
262 int sprintf (char *__stream
, const char *__format
, ...)
264 register int __retval
;
265 __builtin_va_list __local_argv
; __builtin_va_start( __local_argv
, __format
);
266 __retval
= __mingw_vsprintf( __stream
, __format
, __local_argv
);
267 __builtin_va_end( __local_argv
);
271 __mingw_stdio_redirect__
272 int vfprintf (FILE *__stream
, const char *__format
, __VALIST __local_argv
)
274 return __mingw_vfprintf( __stream
, __format
, __local_argv
);
277 __mingw_stdio_redirect__
278 int vprintf (const char *__format
, __VALIST __local_argv
)
280 return __mingw_vprintf( __format
, __local_argv
);
283 __mingw_stdio_redirect__
284 int vsprintf (char *__stream
, const char *__format
, __VALIST __local_argv
)
286 return __mingw_vsprintf( __stream
, __format
, __local_argv
);
291 * Default configuration: simply direct all calls to MSVCRT...
293 _CRTIMP
int __cdecl __MINGW_NOTHROW
fprintf (FILE*, const char*, ...);
294 _CRTIMP
int __cdecl __MINGW_NOTHROW
printf (const char*, ...);
295 _CRTIMP
int __cdecl __MINGW_NOTHROW
sprintf (char*, const char*, ...);
296 _CRTIMP
int __cdecl __MINGW_NOTHROW
vfprintf (FILE*, const char*, __VALIST
);
297 _CRTIMP
int __cdecl __MINGW_NOTHROW
vprintf (const char*, __VALIST
);
298 _CRTIMP
int __cdecl __MINGW_NOTHROW
vsprintf (char*, const char*, __VALIST
);
302 * Regardless of user preference, always offer these alternative
303 * entry points, for direct access to the MSVCRT implementations.
305 #undef __mingw_stdio_redirect__
306 #define __mingw_stdio_redirect__(F) __cdecl __MINGW_NOTHROW __msvcrt_##F
308 _CRTIMP
int __mingw_stdio_redirect__(fprintf
)(FILE*, const char*, ...);
309 _CRTIMP
int __mingw_stdio_redirect__(printf
)(const char*, ...);
310 _CRTIMP
int __mingw_stdio_redirect__(sprintf
)(char*, const char*, ...);
311 _CRTIMP
int __mingw_stdio_redirect__(vfprintf
)(FILE*, const char*, __VALIST
);
312 _CRTIMP
int __mingw_stdio_redirect__(vprintf
)(const char*, __VALIST
);
313 _CRTIMP
int __mingw_stdio_redirect__(vsprintf
)(char*, const char*, __VALIST
);
315 #undef __mingw_stdio_redirect__
317 /* The following pair ALWAYS refer to the MSVCRT implementations...
319 _CRTIMP
int __cdecl __MINGW_NOTHROW
_snprintf (char*, size_t, const char*, ...);
320 _CRTIMP
int __cdecl __MINGW_NOTHROW
_vsnprintf (char*, size_t, const char*, __VALIST
);
322 #ifndef __NO_ISOCEXT /* externs in libmingwex.a */
324 * Microsoft does not provide implementations for the following,
325 * which are required by C99. Note in particular that the corresponding
326 * Microsoft implementations of _snprintf() and _vsnprintf() are *not*
327 * compatible with C99, but the following are; if you want the MSVCRT
328 * behaviour, you *must* use the Microsoft uglified names.
330 int __cdecl __MINGW_NOTHROW
snprintf (char *, size_t, const char *, ...);
331 int __cdecl __MINGW_NOTHROW
vsnprintf (char *, size_t, const char *, __VALIST
);
333 int __cdecl __MINGW_NOTHROW
vscanf (const char * __restrict__
, __VALIST
);
334 int __cdecl __MINGW_NOTHROW
vfscanf (FILE * __restrict__
, const char * __restrict__
,
336 int __cdecl __MINGW_NOTHROW
vsscanf (const char * __restrict__
,
337 const char * __restrict__
, __VALIST
);
339 #endif /* !__NO_ISOCEXT */
345 _CRTIMP
int __cdecl __MINGW_NOTHROW
fscanf (FILE*, const char*, ...);
346 _CRTIMP
int __cdecl __MINGW_NOTHROW
scanf (const char*, ...);
347 _CRTIMP
int __cdecl __MINGW_NOTHROW
sscanf (const char*, const char*, ...);
349 * Character Input and Output Functions
352 _CRTIMP
int __cdecl __MINGW_NOTHROW
fgetc (FILE*);
353 _CRTIMP
char* __cdecl __MINGW_NOTHROW
fgets (char*, int, FILE*);
354 _CRTIMP
int __cdecl __MINGW_NOTHROW
fputc (int, FILE*);
355 _CRTIMP
int __cdecl __MINGW_NOTHROW
fputs (const char*, FILE*);
356 _CRTIMP
char* __cdecl __MINGW_NOTHROW
gets (char*);
357 _CRTIMP
int __cdecl __MINGW_NOTHROW
puts (const char*);
358 _CRTIMP
int __cdecl __MINGW_NOTHROW
ungetc (int, FILE*);
360 /* Traditionally, getc and putc are defined as macros. but the
361 standard doesn't say that they must be macros.
362 We use inline functions here to allow the fast versions
363 to be used in C++ with namespace qualification, eg., ::getc.
365 _filbuf and _flsbuf are not thread-safe. */
366 _CRTIMP
int __cdecl __MINGW_NOTHROW
_filbuf (FILE*);
367 _CRTIMP
int __cdecl __MINGW_NOTHROW
_flsbuf (int, FILE*);
371 __CRT_INLINE
int __cdecl __MINGW_NOTHROW
getc (FILE* __F
)
373 return (--__F
->_cnt
>= 0)
374 ? (int) (unsigned char) *__F
->_ptr
++
378 __CRT_INLINE
int __cdecl __MINGW_NOTHROW
putc (int __c
, FILE* __F
)
380 return (--__F
->_cnt
>= 0)
381 ? (int) (unsigned char) (*__F
->_ptr
++ = (char)__c
)
382 : _flsbuf (__c
, __F
);
385 __CRT_INLINE
int __cdecl __MINGW_NOTHROW
getchar (void)
387 return (--stdin
->_cnt
>= 0)
388 ? (int) (unsigned char) *stdin
->_ptr
++
392 __CRT_INLINE
int __cdecl __MINGW_NOTHROW
putchar(int __c
)
394 return (--stdout
->_cnt
>= 0)
395 ? (int) (unsigned char) (*stdout
->_ptr
++ = (char)__c
)
396 : _flsbuf (__c
, stdout
);}
398 #else /* Use library functions. */
400 _CRTIMP
int __cdecl __MINGW_NOTHROW
getc (FILE*);
401 _CRTIMP
int __cdecl __MINGW_NOTHROW
putc (int, FILE*);
402 _CRTIMP
int __cdecl __MINGW_NOTHROW
getchar (void);
403 _CRTIMP
int __cdecl __MINGW_NOTHROW
putchar (int);
408 * Direct Input and Output Functions
411 _CRTIMP
size_t __cdecl __MINGW_NOTHROW
fread (void*, size_t, size_t, FILE*);
412 _CRTIMP
size_t __cdecl __MINGW_NOTHROW
fwrite (const void*, size_t, size_t, FILE*);
415 * File Positioning Functions
418 _CRTIMP
int __cdecl __MINGW_NOTHROW
fseek (FILE*, long, int);
419 _CRTIMP
long __cdecl __MINGW_NOTHROW
ftell (FILE*);
420 _CRTIMP
void __cdecl __MINGW_NOTHROW
rewind (FILE*);
422 #if __MSVCRT_VERSION__ >= 0x800
423 _CRTIMP
int __cdecl __MINGW_NOTHROW
_fseek_nolock (FILE*, long, int);
424 _CRTIMP
long __cdecl __MINGW_NOTHROW
_ftell_nolock (FILE*);
426 _CRTIMP
int __cdecl __MINGW_NOTHROW
_fseeki64 (FILE*, __int64
, int);
427 _CRTIMP __int64 __cdecl __MINGW_NOTHROW
_ftelli64 (FILE*);
428 _CRTIMP
int __cdecl __MINGW_NOTHROW
_fseeki64_nolock (FILE*, __int64
, int);
429 _CRTIMP __int64 __cdecl __MINGW_NOTHROW
_ftelli64_nolock (FILE*);
432 #ifdef __USE_MINGW_FSEEK /* These are in libmingwex.a */
434 * Workaround for limitations on win9x where a file contents are
435 * not zero'd out if you seek past the end and then write.
438 int __cdecl __MINGW_NOTHROW
__mingw_fseek (FILE *, long, int);
439 size_t __cdecl __MINGW_NOTHROW
__mingw_fwrite (const void*, size_t, size_t, FILE*);
440 #define fseek(fp, offset, whence) __mingw_fseek(fp, offset, whence)
441 #define fwrite(buffer, size, count, fp) __mingw_fwrite(buffer, size, count, fp)
442 #endif /* __USE_MINGW_FSEEK */
445 * An opaque data type used for storing file positions... The contents of
446 * this type are unknown, but we (the compiler) need to know the size
447 * because the programmer using fgetpos and fsetpos will be setting aside
448 * storage for fpos_t structres. Actually I tested using a byte array and
449 * it is fairly evident that the fpos_t type is a long (in CRTDLL.DLL).
450 * Perhaps an unsigned long? TODO? It's definitely a 64-bit number in
451 * MSVCRT however, and for now `long long' will do.
454 typedef long long fpos_t;
459 _CRTIMP
int __cdecl __MINGW_NOTHROW
fgetpos (FILE*, fpos_t*);
460 _CRTIMP
int __cdecl __MINGW_NOTHROW
fsetpos (FILE*, const fpos_t*);
466 _CRTIMP
int __cdecl __MINGW_NOTHROW
feof (FILE*);
467 _CRTIMP
int __cdecl __MINGW_NOTHROW
ferror (FILE*);
470 inline int __cdecl __MINGW_NOTHROW
feof (FILE* __F
)
471 { return __F
->_flag
& _IOEOF
; }
472 inline int __cdecl __MINGW_NOTHROW
ferror (FILE* __F
)
473 { return __F
->_flag
& _IOERR
; }
475 #define feof(__F) ((__F)->_flag & _IOEOF)
476 #define ferror(__F) ((__F)->_flag & _IOERR)
479 _CRTIMP
void __cdecl __MINGW_NOTHROW
clearerr (FILE*);
480 _CRTIMP
void __cdecl __MINGW_NOTHROW
perror (const char*);
483 #ifndef __STRICT_ANSI__
487 _CRTIMP
FILE* __cdecl __MINGW_NOTHROW
_popen (const char*, const char*);
488 _CRTIMP
int __cdecl __MINGW_NOTHROW
_pclose (FILE*);
491 _CRTIMP
FILE* __cdecl __MINGW_NOTHROW
popen (const char*, const char*);
492 _CRTIMP
int __cdecl __MINGW_NOTHROW
pclose (FILE*);
496 * Other Non ANSI functions
498 _CRTIMP
int __cdecl __MINGW_NOTHROW
_flushall (void);
499 _CRTIMP
int __cdecl __MINGW_NOTHROW
_fgetchar (void);
500 _CRTIMP
int __cdecl __MINGW_NOTHROW
_fputchar (int);
501 _CRTIMP
FILE* __cdecl __MINGW_NOTHROW
_fdopen (int, const char*);
502 _CRTIMP
int __cdecl __MINGW_NOTHROW
_fileno (FILE*);
503 _CRTIMP
int __cdecl __MINGW_NOTHROW
_fcloseall (void);
504 _CRTIMP
FILE* __cdecl __MINGW_NOTHROW
_fsopen (const char*, const char*, int);
506 _CRTIMP
int __cdecl __MINGW_NOTHROW
_getmaxstdio (void);
507 _CRTIMP
int __cdecl __MINGW_NOTHROW
_setmaxstdio (int);
510 #if __MSVCRT_VERSION__ >= 0x800
511 _CRTIMP
unsigned int __cdecl __MINGW_NOTHROW
_get_output_format (void);
512 _CRTIMP
unsigned int __cdecl __MINGW_NOTHROW
_set_output_format (unsigned int);
514 #define _TWO_DIGIT_EXPONENT 1
516 _CRTIMP
int __cdecl __MINGW_NOTHROW
_get_printf_count_output (void);
517 _CRTIMP
int __cdecl __MINGW_NOTHROW
_set_printf_count_output (int);
521 _CRTIMP
int __cdecl __MINGW_NOTHROW
fgetchar (void);
522 _CRTIMP
int __cdecl __MINGW_NOTHROW
fputchar (int);
523 _CRTIMP
FILE* __cdecl __MINGW_NOTHROW
fdopen (int, const char*);
524 _CRTIMP
int __cdecl __MINGW_NOTHROW
fileno (FILE*);
525 #endif /* Not _NO_OLDNAMES */
527 #define _fileno(__F) ((__F)->_file)
529 #define fileno(__F) ((__F)->_file)
532 #if defined (__MSVCRT__) && !defined (__NO_MINGW_LFS)
533 #include <sys/types.h>
534 __CRT_INLINE
FILE* __cdecl __MINGW_NOTHROW
fopen64 (const char* filename
, const char* mode
)
536 return fopen (filename
, mode
);
539 int __cdecl __MINGW_NOTHROW
fseeko64 (FILE*, off64_t
, int);
541 #ifdef __USE_MINGW_FSEEK
542 int __cdecl __MINGW_NOTHROW
__mingw_fseeko64 (FILE *, off64_t
, int);
543 #define fseeko64(fp, offset, whence) __mingw_fseeko64(fp, offset, whence)
546 __CRT_INLINE off64_t __cdecl __MINGW_NOTHROW
ftello64 (FILE * stream
)
549 if (fgetpos(stream
, &pos
))
552 return ((off64_t
) pos
);
554 #endif /* __NO_MINGW_LFS */
556 #endif /* Not __STRICT_ANSI__ */
560 #ifndef _WSTDIO_DEFINED
561 /* also in wchar.h - keep in sync */
562 _CRTIMP
int __cdecl __MINGW_NOTHROW
fwprintf (FILE*, const wchar_t*, ...);
563 _CRTIMP
int __cdecl __MINGW_NOTHROW
wprintf (const wchar_t*, ...);
564 _CRTIMP
int __cdecl __MINGW_NOTHROW
_snwprintf (wchar_t*, size_t, const wchar_t*, ...);
565 _CRTIMP
int __cdecl __MINGW_NOTHROW
vfwprintf (FILE*, const wchar_t*, __VALIST
);
566 _CRTIMP
int __cdecl __MINGW_NOTHROW
vwprintf (const wchar_t*, __VALIST
);
567 _CRTIMP
int __cdecl __MINGW_NOTHROW
_vsnwprintf (wchar_t*, size_t, const wchar_t*, __VALIST
);
568 _CRTIMP
int __cdecl __MINGW_NOTHROW
fwscanf (FILE*, const wchar_t*, ...);
569 _CRTIMP
int __cdecl __MINGW_NOTHROW
wscanf (const wchar_t*, ...);
570 _CRTIMP
int __cdecl __MINGW_NOTHROW
swscanf (const wchar_t*, const wchar_t*, ...);
571 _CRTIMP
wint_t __cdecl __MINGW_NOTHROW
fgetwc (FILE*);
572 _CRTIMP
wint_t __cdecl __MINGW_NOTHROW
fputwc (wchar_t, FILE*);
573 _CRTIMP
wint_t __cdecl __MINGW_NOTHROW
ungetwc (wchar_t, FILE*);
575 /* These differ from the ISO C prototypes, which have a maxlen parameter (like snprintf). */
576 #ifndef __STRICT_ANSI__
577 _CRTIMP
int __cdecl __MINGW_NOTHROW
swprintf (wchar_t*, const wchar_t*, ...);
578 _CRTIMP
int __cdecl __MINGW_NOTHROW
vswprintf (wchar_t*, const wchar_t*, __VALIST
);
582 _CRTIMP
wchar_t* __cdecl __MINGW_NOTHROW
fgetws (wchar_t*, int, FILE*);
583 _CRTIMP
int __cdecl __MINGW_NOTHROW
fputws (const wchar_t*, FILE*);
584 _CRTIMP
wint_t __cdecl __MINGW_NOTHROW
getwc (FILE*);
585 _CRTIMP
wint_t __cdecl __MINGW_NOTHROW
getwchar (void);
586 _CRTIMP
wchar_t* __cdecl __MINGW_NOTHROW
_getws (wchar_t*);
587 _CRTIMP
wint_t __cdecl __MINGW_NOTHROW
putwc (wint_t, FILE*);
588 _CRTIMP
int __cdecl __MINGW_NOTHROW
_putws (const wchar_t*);
589 _CRTIMP
wint_t __cdecl __MINGW_NOTHROW
putwchar (wint_t);
590 _CRTIMP
FILE* __cdecl __MINGW_NOTHROW
_wfdopen(int, const wchar_t *);
591 _CRTIMP
FILE* __cdecl __MINGW_NOTHROW
_wfopen (const wchar_t*, const wchar_t*);
592 _CRTIMP
FILE* __cdecl __MINGW_NOTHROW
_wfreopen (const wchar_t*, const wchar_t*, FILE*);
593 _CRTIMP
FILE* __cdecl __MINGW_NOTHROW
_wfsopen (const wchar_t*, const wchar_t*, int);
594 _CRTIMP
wchar_t* __cdecl __MINGW_NOTHROW
_wtmpnam (wchar_t*);
595 _CRTIMP
wchar_t* __cdecl __MINGW_NOTHROW
_wtempnam (const wchar_t*, const wchar_t*);
596 _CRTIMP
int __cdecl __MINGW_NOTHROW
_wrename (const wchar_t*, const wchar_t*);
597 _CRTIMP
int __cdecl __MINGW_NOTHROW
_wremove (const wchar_t*);
598 _CRTIMP
void __cdecl __MINGW_NOTHROW
_wperror (const wchar_t*);
599 _CRTIMP
FILE* __cdecl __MINGW_NOTHROW
_wpopen (const wchar_t*, const wchar_t*);
600 #endif /* __MSVCRT__ */
602 #ifndef __NO_ISOCEXT /* externs in libmingwex.a */
603 int __cdecl __MINGW_NOTHROW
snwprintf (wchar_t* s
, size_t n
, const wchar_t* format
, ...);
604 __CRT_INLINE
int __cdecl __MINGW_NOTHROW
605 vsnwprintf (wchar_t* s
, size_t n
, const wchar_t* format
, __VALIST arg
)
606 { return _vsnwprintf ( s
, n
, format
, arg
);}
607 int __cdecl __MINGW_NOTHROW
vwscanf (const wchar_t * __restrict__
, __VALIST
);
608 int __cdecl __MINGW_NOTHROW
vfwscanf (FILE * __restrict__
,
609 const wchar_t * __restrict__
, __VALIST
);
610 int __cdecl __MINGW_NOTHROW
vswscanf (const wchar_t * __restrict__
,
611 const wchar_t * __restrict__
, __VALIST
);
614 #define _WSTDIO_DEFINED
615 #endif /* _WSTDIO_DEFINED */
617 #ifndef __STRICT_ANSI__
620 _CRTIMP
FILE* __cdecl __MINGW_NOTHROW
wpopen (const wchar_t*, const wchar_t*);
621 #endif /* not NO_OLDNAMES */
622 #endif /* MSVCRT runtime */
625 * Other Non ANSI wide functions
627 _CRTIMP
wint_t __cdecl __MINGW_NOTHROW
_fgetwchar (void);
628 _CRTIMP
wint_t __cdecl __MINGW_NOTHROW
_fputwchar (wint_t);
629 _CRTIMP
int __cdecl __MINGW_NOTHROW
_getw (FILE*);
630 _CRTIMP
int __cdecl __MINGW_NOTHROW
_putw (int, FILE*);
633 _CRTIMP
wint_t __cdecl __MINGW_NOTHROW
fgetwchar (void);
634 _CRTIMP
wint_t __cdecl __MINGW_NOTHROW
fputwchar (wint_t);
635 _CRTIMP
int __cdecl __MINGW_NOTHROW
getw (FILE*);
636 _CRTIMP
int __cdecl __MINGW_NOTHROW
putw (int, FILE*);
637 #endif /* Not _NO_OLDNAMES */
639 #endif /* __STRICT_ANSI */
645 #endif /* Not RC_INVOKED */
647 #endif /* _STDIO_H_ */