xref: /reactos/sdk/include/crt/stdio.h (revision e10892e4)
1c2c66affSColin Finck /**
2c2c66affSColin Finck  * This file has no copyright assigned and is placed in the Public Domain.
3c2c66affSColin Finck  * This file is part of the w64 mingw-runtime package.
4c2c66affSColin Finck  * No warranty is given; refer to the file DISCLAIMER within this package.
5c2c66affSColin Finck  */
6c2c66affSColin Finck #ifndef _INC_STDIO
7c2c66affSColin Finck #define _INC_STDIO
8c2c66affSColin Finck 
9c2c66affSColin Finck #include <crtdefs.h>
10c2c66affSColin Finck 
11c2c66affSColin Finck #define __need___va_list
12c2c66affSColin Finck #include <stdarg.h>
13c2c66affSColin Finck 
14c2c66affSColin Finck #pragma pack(push,_CRT_PACKING)
15c2c66affSColin Finck 
16c2c66affSColin Finck #ifdef __cplusplus
17c2c66affSColin Finck extern "C" {
18c2c66affSColin Finck #endif
19c2c66affSColin Finck 
20c2c66affSColin Finck #define BUFSIZ 512
21c2c66affSColin Finck #define _NFILE _NSTREAM_
22c2c66affSColin Finck #define _NSTREAM_ 512
23c2c66affSColin Finck #define _IOB_ENTRIES 20
24c2c66affSColin Finck #define EOF (-1)
25c2c66affSColin Finck 
26c2c66affSColin Finck #ifndef _FILE_DEFINED
27c2c66affSColin Finck   struct _iobuf {
28c2c66affSColin Finck     char *_ptr;
29c2c66affSColin Finck     int _cnt;
30c2c66affSColin Finck     char *_base;
31c2c66affSColin Finck     int _flag;
32c2c66affSColin Finck     int _file;
33c2c66affSColin Finck     int _charbuf;
34c2c66affSColin Finck     int _bufsiz;
35c2c66affSColin Finck     char *_tmpfname;
36c2c66affSColin Finck   };
37c2c66affSColin Finck   typedef struct _iobuf FILE;
38c2c66affSColin Finck #define _FILE_DEFINED
39c2c66affSColin Finck #endif
40c2c66affSColin Finck 
41c2c66affSColin Finck #ifdef _POSIX_
42c2c66affSColin Finck #define _P_tmpdir "/"
43c2c66affSColin Finck #define _wP_tmpdir L"/"
44c2c66affSColin Finck #else
45c2c66affSColin Finck #define _P_tmpdir "\\"
46c2c66affSColin Finck #define _wP_tmpdir L"\\"
47c2c66affSColin Finck #endif
48c2c66affSColin Finck 
49c2c66affSColin Finck #define L_tmpnam (sizeof(_P_tmpdir) + 12)
50c2c66affSColin Finck 
51c2c66affSColin Finck #ifdef _POSIX_
52c2c66affSColin Finck #define L_ctermid 9
53c2c66affSColin Finck #define L_cuserid 32
54c2c66affSColin Finck #endif
55c2c66affSColin Finck 
56c2c66affSColin Finck #define SEEK_CUR 1
57c2c66affSColin Finck #define SEEK_END 2
58c2c66affSColin Finck #define SEEK_SET 0
59c2c66affSColin Finck 
60c2c66affSColin Finck #define	STDIN_FILENO	0
61c2c66affSColin Finck #define	STDOUT_FILENO	1
62c2c66affSColin Finck #define	STDERR_FILENO	2
63c2c66affSColin Finck 
64c2c66affSColin Finck #define FILENAME_MAX 260
65c2c66affSColin Finck #define FOPEN_MAX 20
66c2c66affSColin Finck #define _SYS_OPEN 20
67c2c66affSColin Finck #define TMP_MAX 32767
68c2c66affSColin Finck 
69c2c66affSColin Finck #ifndef NULL
70c2c66affSColin Finck #ifdef __cplusplus
71c2c66affSColin Finck #define NULL 0
72c2c66affSColin Finck #else
73c2c66affSColin Finck #define NULL ((void *)0)
74c2c66affSColin Finck #endif
75c2c66affSColin Finck #endif
76c2c66affSColin Finck 
77c2c66affSColin Finck #ifndef _OFF_T_DEFINED
78c2c66affSColin Finck #define _OFF_T_DEFINED
79c2c66affSColin Finck #ifndef _OFF_T_
80c2c66affSColin Finck #define _OFF_T_
81c2c66affSColin Finck   typedef long _off_t;
82c2c66affSColin Finck #if !defined(NO_OLDNAMES) || defined(_POSIX)
83c2c66affSColin Finck   typedef long off_t;
84c2c66affSColin Finck #endif
85c2c66affSColin Finck #endif
86c2c66affSColin Finck #endif
87c2c66affSColin Finck 
88c2c66affSColin Finck #ifndef _OFF64_T_DEFINED
89c2c66affSColin Finck #define _OFF64_T_DEFINED
90c2c66affSColin Finck   __MINGW_EXTENSION typedef long long _off64_t;
91c2c66affSColin Finck #if !defined(NO_OLDNAMES) || defined(_POSIX)
92c2c66affSColin Finck   __MINGW_EXTENSION typedef long long off64_t;
93c2c66affSColin Finck #endif
94c2c66affSColin Finck #endif
95c2c66affSColin Finck 
96c2c66affSColin Finck #ifndef _STDIO_DEFINED
97c2c66affSColin Finck   _CRTIMP FILE *__cdecl __iob_func(void);
98c2c66affSColin Finck   _CRTDATA(extern FILE _iob[];)
99c2c66affSColin Finck #ifdef _M_CEE_PURE
100c2c66affSColin Finck #define _iob __iob_func()
101c2c66affSColin Finck #endif
102c2c66affSColin Finck #endif
103c2c66affSColin Finck 
104c2c66affSColin Finck #ifndef _STDSTREAM_DEFINED
105c2c66affSColin Finck #define _STDSTREAM_DEFINED
106c2c66affSColin Finck #define stdin (&_iob[0])
107c2c66affSColin Finck #define stdout (&_iob[1])
108c2c66affSColin Finck #define stderr (&_iob[2])
109c2c66affSColin Finck #endif /* !_STDSTREAM_DEFINED */
110c2c66affSColin Finck 
111c2c66affSColin Finck #ifndef _FPOS_T_DEFINED
112c2c66affSColin Finck #define _FPOS_T_DEFINED
113c2c66affSColin Finck #undef _FPOSOFF
114c2c66affSColin Finck 
115c2c66affSColin Finck #if (!defined(NO_OLDNAMES) || defined(__GNUC__)) && _INTEGRAL_MAX_BITS >= 64
116c2c66affSColin Finck   __MINGW_EXTENSION typedef __int64 fpos_t;
117c2c66affSColin Finck #define _FPOSOFF(fp) ((long)(fp))
118c2c66affSColin Finck #else
119c2c66affSColin Finck   __MINGW_EXTENSION typedef long long fpos_t;
120c2c66affSColin Finck #define _FPOSOFF(fp) ((long)(fp))
121c2c66affSColin Finck #endif
122c2c66affSColin Finck 
123c2c66affSColin Finck #endif
124c2c66affSColin Finck 
125c2c66affSColin Finck #define _IOREAD 0x0001
126c2c66affSColin Finck #define _IOWRT 0x0002
127c2c66affSColin Finck 
128c2c66affSColin Finck #define _IOFBF 0x0000
129c2c66affSColin Finck #define _IOLBF 0x0040
130c2c66affSColin Finck #define _IONBF 0x0004
131c2c66affSColin Finck 
132c2c66affSColin Finck #define _IOMYBUF 0x0008
133c2c66affSColin Finck #define _IOEOF 0x0010
134c2c66affSColin Finck #define _IOERR 0x0020
135c2c66affSColin Finck #define _IOSTRG 0x0040
136c2c66affSColin Finck #define _IORW 0x0080
137c2c66affSColin Finck #define _USERBUF 0x0100
138c2c66affSColin Finck 
139c2c66affSColin Finck #define _TWO_DIGIT_EXPONENT 0x1
140c2c66affSColin Finck 
141c2c66affSColin Finck #ifndef _STDIO_DEFINED
142c2c66affSColin Finck 
143c2c66affSColin Finck   _Check_return_
144c2c66affSColin Finck   _CRTIMP
145c2c66affSColin Finck   int
146c2c66affSColin Finck   __cdecl
147c2c66affSColin Finck   _filbuf(
148c2c66affSColin Finck     _Inout_ FILE *_File);
149c2c66affSColin Finck 
150c2c66affSColin Finck   _Check_return_opt_
151c2c66affSColin Finck   _CRTIMP
152c2c66affSColin Finck   int
153c2c66affSColin Finck   __cdecl
154c2c66affSColin Finck   _flsbuf(
155c2c66affSColin Finck     _In_ int _Ch,
156c2c66affSColin Finck     _Inout_ FILE *_File);
157c2c66affSColin Finck 
158c2c66affSColin Finck #ifdef _POSIX_
159c2c66affSColin Finck   _CRTIMP
160c2c66affSColin Finck   FILE*
161c2c66affSColin Finck   __cdecl
162c2c66affSColin Finck   _fsopen(
163c2c66affSColin Finck     const char *_Filename,
164c2c66affSColin Finck     const char *_Mode);
165c2c66affSColin Finck #else
166c2c66affSColin Finck   _Check_return_
167c2c66affSColin Finck   _CRTIMP
168c2c66affSColin Finck   FILE*
169c2c66affSColin Finck   __cdecl
170c2c66affSColin Finck   _fsopen(
171c2c66affSColin Finck     _In_z_ const char *_Filename,
172c2c66affSColin Finck     _In_z_ const char *_Mode,
173c2c66affSColin Finck     _In_ int _ShFlag);
174c2c66affSColin Finck #endif
175c2c66affSColin Finck 
176c2c66affSColin Finck   _CRTIMP
177c2c66affSColin Finck   void
178c2c66affSColin Finck   __cdecl
179c2c66affSColin Finck   clearerr(
180c2c66affSColin Finck     _Inout_ FILE *_File);
181c2c66affSColin Finck 
182c2c66affSColin Finck   _Check_return_opt_
183c2c66affSColin Finck   _CRTIMP
184c2c66affSColin Finck   int
185c2c66affSColin Finck   __cdecl
186c2c66affSColin Finck   fclose(
187c2c66affSColin Finck     _Inout_ FILE *_File);
188c2c66affSColin Finck 
189c2c66affSColin Finck   _Check_return_opt_
190c2c66affSColin Finck   _CRTIMP
191c2c66affSColin Finck   int
192c2c66affSColin Finck   __cdecl
193c2c66affSColin Finck   _fcloseall(void);
194c2c66affSColin Finck 
195c2c66affSColin Finck #ifdef _POSIX_
196c2c66affSColin Finck   FILE*
197c2c66affSColin Finck   __cdecl
198c2c66affSColin Finck   fdopen(
199c2c66affSColin Finck     int _FileHandle,
200c2c66affSColin Finck     const char *_Mode);
201c2c66affSColin Finck #else
202c2c66affSColin Finck   _Check_return_
203c2c66affSColin Finck   _CRTIMP
204c2c66affSColin Finck   FILE*
205c2c66affSColin Finck   __cdecl
206c2c66affSColin Finck   _fdopen(
207c2c66affSColin Finck     _In_ int _FileHandle,
208c2c66affSColin Finck     _In_z_ const char *_Mode);
209c2c66affSColin Finck #endif
210c2c66affSColin Finck 
211c2c66affSColin Finck   _Check_return_
212c2c66affSColin Finck   _CRTIMP
213c2c66affSColin Finck   int
214c2c66affSColin Finck   __cdecl
215c2c66affSColin Finck   feof(
216c2c66affSColin Finck     _In_ FILE *_File);
217c2c66affSColin Finck 
218c2c66affSColin Finck   _Check_return_
219c2c66affSColin Finck   _CRTIMP
220c2c66affSColin Finck   int
221c2c66affSColin Finck   __cdecl
222c2c66affSColin Finck   ferror(
223c2c66affSColin Finck     _In_ FILE *_File);
224c2c66affSColin Finck 
225c2c66affSColin Finck   _Check_return_opt_
226c2c66affSColin Finck   _CRTIMP
227c2c66affSColin Finck   int
228c2c66affSColin Finck   __cdecl
229c2c66affSColin Finck   fflush(
230c2c66affSColin Finck     _Inout_opt_ FILE *_File);
231c2c66affSColin Finck 
232c2c66affSColin Finck   _Check_return_opt_
233c2c66affSColin Finck   _CRTIMP
234c2c66affSColin Finck   int
235c2c66affSColin Finck   __cdecl
236c2c66affSColin Finck   fgetc(
237c2c66affSColin Finck     _Inout_ FILE *_File);
238c2c66affSColin Finck 
239c2c66affSColin Finck   _Check_return_opt_
240c2c66affSColin Finck   _CRTIMP
241c2c66affSColin Finck   int
242c2c66affSColin Finck   __cdecl
243c2c66affSColin Finck   _fgetchar(void);
244c2c66affSColin Finck 
245c2c66affSColin Finck   _Check_return_opt_
246c2c66affSColin Finck   _CRTIMP
247c2c66affSColin Finck   int
248c2c66affSColin Finck   __cdecl
249c2c66affSColin Finck   fgetpos(
250c2c66affSColin Finck     _Inout_ FILE *_File,
251c2c66affSColin Finck     _Out_ fpos_t *_Pos);
252c2c66affSColin Finck 
253c2c66affSColin Finck   _Check_return_opt_
254c2c66affSColin Finck   _CRTIMP
255c2c66affSColin Finck   char*
256c2c66affSColin Finck   __cdecl
257c2c66affSColin Finck   fgets(
258c2c66affSColin Finck     _Out_writes_z_(_MaxCount) char *_Buf,
259c2c66affSColin Finck     _In_ int _MaxCount,
260c2c66affSColin Finck     _Inout_ FILE *_File);
261c2c66affSColin Finck 
262c2c66affSColin Finck #ifdef _POSIX_
263c2c66affSColin Finck   int
264c2c66affSColin Finck   __cdecl
265c2c66affSColin Finck   fileno(
266c2c66affSColin Finck     FILE *_File);
267c2c66affSColin Finck #else
268c2c66affSColin Finck   _Check_return_
269c2c66affSColin Finck   _CRTIMP
270c2c66affSColin Finck   int
271c2c66affSColin Finck   __cdecl
272c2c66affSColin Finck   _fileno(
273c2c66affSColin Finck     _In_ FILE *_File);
274c2c66affSColin Finck #endif
275c2c66affSColin Finck 
276c2c66affSColin Finck   _Check_return_
277c2c66affSColin Finck   _CRTIMP
278c2c66affSColin Finck   char*
279c2c66affSColin Finck   __cdecl
280c2c66affSColin Finck   _tempnam(
281c2c66affSColin Finck     _In_opt_z_ const char *_DirName,
282c2c66affSColin Finck     _In_opt_z_ const char *_FilePrefix);
283c2c66affSColin Finck 
284c2c66affSColin Finck   _Check_return_opt_
285c2c66affSColin Finck   _CRTIMP
286c2c66affSColin Finck   int
287c2c66affSColin Finck   __cdecl
288c2c66affSColin Finck   _flushall(void);
289c2c66affSColin Finck 
290c2c66affSColin Finck   _Check_return_
291c2c66affSColin Finck   _CRTIMP
292c2c66affSColin Finck   FILE*
293c2c66affSColin Finck   __cdecl
294c2c66affSColin Finck   fopen(
295c2c66affSColin Finck     _In_z_ const char *_Filename,
296c2c66affSColin Finck     _In_z_ const char *_Mode);
297c2c66affSColin Finck 
298c2c66affSColin Finck   _Check_return_opt_
299c2c66affSColin Finck   _CRTIMP
300c2c66affSColin Finck   int
301c2c66affSColin Finck   __cdecl
302c2c66affSColin Finck   fprintf(
303c2c66affSColin Finck     _Inout_ FILE *_File,
304c2c66affSColin Finck     _In_z_ _Printf_format_string_ const char *_Format,
305c2c66affSColin Finck     ...);
306c2c66affSColin Finck 
307c2c66affSColin Finck   _Check_return_opt_
308c2c66affSColin Finck   _CRTIMP
309c2c66affSColin Finck   int
310c2c66affSColin Finck   __cdecl
311c2c66affSColin Finck   fputc(
312c2c66affSColin Finck     _In_ int _Ch,
313c2c66affSColin Finck     _Inout_ FILE *_File);
314c2c66affSColin Finck 
315c2c66affSColin Finck   _Check_return_opt_
316c2c66affSColin Finck   _CRTIMP
317c2c66affSColin Finck   int
318c2c66affSColin Finck   __cdecl
319c2c66affSColin Finck   _fputchar(
320c2c66affSColin Finck     _In_ int _Ch);
321c2c66affSColin Finck 
322c2c66affSColin Finck   _Check_return_opt_
323c2c66affSColin Finck   _CRTIMP
324c2c66affSColin Finck   int
325c2c66affSColin Finck   __cdecl
326c2c66affSColin Finck   fputs(
327c2c66affSColin Finck     _In_z_ const char *_Str,
328c2c66affSColin Finck     _Inout_ FILE *_File);
329c2c66affSColin Finck 
330c2c66affSColin Finck   _Check_return_opt_
331c2c66affSColin Finck   _CRTIMP
332c2c66affSColin Finck   size_t
333c2c66affSColin Finck   __cdecl
334c2c66affSColin Finck   fread(
335c2c66affSColin Finck     _Out_writes_bytes_(_ElementSize * _Count) void *_DstBuf,
336c2c66affSColin Finck     _In_ size_t _ElementSize,
337c2c66affSColin Finck     _In_ size_t _Count,
338c2c66affSColin Finck     _Inout_ FILE *_File);
339c2c66affSColin Finck 
340c2c66affSColin Finck   _Check_return_
341c2c66affSColin Finck   _CRTIMP
342c2c66affSColin Finck   _CRT_INSECURE_DEPRECATE(freopen_s)
343c2c66affSColin Finck   FILE*
344c2c66affSColin Finck   __cdecl
345c2c66affSColin Finck   freopen(
346c2c66affSColin Finck     _In_z_ const char *_Filename,
347c2c66affSColin Finck     _In_z_ const char *_Mode,
348c2c66affSColin Finck     _Inout_ FILE *_File);
349c2c66affSColin Finck 
350c2c66affSColin Finck   _Check_return_
351c2c66affSColin Finck   _CRTIMP
352c2c66affSColin Finck   _CRT_INSECURE_DEPRECATE(fscanf_s)
353c2c66affSColin Finck   int
354c2c66affSColin Finck   __cdecl
355c2c66affSColin Finck   fscanf(
356c2c66affSColin Finck     _Inout_ FILE *_File,
357c2c66affSColin Finck     _In_z_ _Scanf_format_string_ const char *_Format,
358c2c66affSColin Finck     ...);
359c2c66affSColin Finck 
360c2c66affSColin Finck   _Check_return_opt_
361c2c66affSColin Finck   _CRTIMP
362c2c66affSColin Finck   int
363c2c66affSColin Finck   __cdecl
364c2c66affSColin Finck   fsetpos(
365c2c66affSColin Finck     _Inout_ FILE *_File,
366c2c66affSColin Finck     _In_ const fpos_t *_Pos);
367c2c66affSColin Finck 
368c2c66affSColin Finck   _Check_return_opt_
369c2c66affSColin Finck   _CRTIMP
370c2c66affSColin Finck   int
371c2c66affSColin Finck   __cdecl
372c2c66affSColin Finck   fseek(
373c2c66affSColin Finck     _Inout_ FILE *_File,
374c2c66affSColin Finck     _In_ long _Offset,
375c2c66affSColin Finck     _In_ int _Origin);
376c2c66affSColin Finck 
377c2c66affSColin Finck   _Check_return_
378c2c66affSColin Finck   _CRTIMP
379c2c66affSColin Finck   long
380c2c66affSColin Finck   __cdecl
381c2c66affSColin Finck   ftell(
382c2c66affSColin Finck     _Inout_ FILE *_File);
383c2c66affSColin Finck 
384c2c66affSColin Finck   _Check_return_opt_
385c2c66affSColin Finck   __MINGW_EXTENSION
386c2c66affSColin Finck   _CRTIMP
387c2c66affSColin Finck   int
388c2c66affSColin Finck   __cdecl
389c2c66affSColin Finck   _fseeki64(
390c2c66affSColin Finck     _Inout_ FILE *_File,
391c2c66affSColin Finck     _In_ __int64 _Offset,
392c2c66affSColin Finck     _In_ int _Origin);
393c2c66affSColin Finck 
394c2c66affSColin Finck   __MINGW_EXTENSION
395*e10892e4SJérôme Gardou   _Check_return_
396c2c66affSColin Finck   _CRTIMP
397c2c66affSColin Finck   __int64
398c2c66affSColin Finck   __cdecl
399c2c66affSColin Finck   _ftelli64(
400c2c66affSColin Finck     _Inout_ FILE *_File);
401c2c66affSColin Finck 
402c2c66affSColin Finck   _Check_return_opt_
403c2c66affSColin Finck   _CRTIMP
404c2c66affSColin Finck   size_t
405c2c66affSColin Finck   __cdecl
406c2c66affSColin Finck   fwrite(
407c2c66affSColin Finck     _In_reads_bytes_(_Size * _Count) const void *_Str,
408c2c66affSColin Finck     _In_ size_t _Size,
409c2c66affSColin Finck     _In_ size_t _Count,
410c2c66affSColin Finck     _Inout_ FILE *_File);
411c2c66affSColin Finck 
412c2c66affSColin Finck   _Check_return_
413c2c66affSColin Finck   _CRTIMP
414c2c66affSColin Finck   int
415c2c66affSColin Finck   __cdecl
416c2c66affSColin Finck   getc(
417c2c66affSColin Finck     _Inout_ FILE *_File);
418c2c66affSColin Finck 
419c2c66affSColin Finck   _Check_return_
420c2c66affSColin Finck   _CRTIMP
421c2c66affSColin Finck   int
422c2c66affSColin Finck   __cdecl
423c2c66affSColin Finck   getchar(void);
424c2c66affSColin Finck 
425c2c66affSColin Finck   _Check_return_
426c2c66affSColin Finck   _CRTIMP
427c2c66affSColin Finck   int
428c2c66affSColin Finck   __cdecl
429c2c66affSColin Finck   _getmaxstdio(void);
430c2c66affSColin Finck 
431c2c66affSColin Finck   _CRTIMP
432c2c66affSColin Finck   char*
433c2c66affSColin Finck   __cdecl
434c2c66affSColin Finck   gets(
435c2c66affSColin Finck     char *_Buffer); // FIXME: non-standard
436c2c66affSColin Finck 
437c2c66affSColin Finck   _Check_return_
438c2c66affSColin Finck   _CRTIMP
439c2c66affSColin Finck   int
440c2c66affSColin Finck   __cdecl
441c2c66affSColin Finck   _getw(
442c2c66affSColin Finck     _Inout_ FILE *_File);
443c2c66affSColin Finck 
444c2c66affSColin Finck #ifndef _CRT_PERROR_DEFINED
445c2c66affSColin Finck #define _CRT_PERROR_DEFINED
446c2c66affSColin Finck   _CRTIMP
447c2c66affSColin Finck   void
448c2c66affSColin Finck   __cdecl
449c2c66affSColin Finck   perror(
450c2c66affSColin Finck     _In_opt_z_ const char *_ErrMsg);
451c2c66affSColin Finck #endif
452c2c66affSColin Finck 
453c2c66affSColin Finck   _Check_return_opt_
454c2c66affSColin Finck   _CRTIMP
455c2c66affSColin Finck   int
456c2c66affSColin Finck   __cdecl
457c2c66affSColin Finck   _pclose(
458c2c66affSColin Finck     _Inout_ FILE *_File);
459c2c66affSColin Finck 
460c2c66affSColin Finck   _Check_return_
461c2c66affSColin Finck   _CRTIMP
462c2c66affSColin Finck   FILE*
463c2c66affSColin Finck   __cdecl
464c2c66affSColin Finck   _popen(
465c2c66affSColin Finck     _In_z_ const char *_Command,
466c2c66affSColin Finck     _In_z_ const char *_Mode);
467c2c66affSColin Finck 
468c2c66affSColin Finck   _Check_return_opt_
469c2c66affSColin Finck   _CRTIMP
470c2c66affSColin Finck   int
471c2c66affSColin Finck   __cdecl
472c2c66affSColin Finck   printf(
473c2c66affSColin Finck     _In_z_ _Printf_format_string_ const char *_Format,
474c2c66affSColin Finck     ...);
475c2c66affSColin Finck 
476c2c66affSColin Finck   _Check_return_opt_
477c2c66affSColin Finck   _CRTIMP
478c2c66affSColin Finck   int
479c2c66affSColin Finck   __cdecl
480c2c66affSColin Finck   putc(
481c2c66affSColin Finck     _In_ int _Ch,
482c2c66affSColin Finck     _Inout_ FILE *_File);
483c2c66affSColin Finck 
484c2c66affSColin Finck   _Check_return_opt_
485c2c66affSColin Finck   _CRTIMP
486c2c66affSColin Finck   int
487c2c66affSColin Finck   __cdecl
488c2c66affSColin Finck   putchar(
489c2c66affSColin Finck     _In_ int _Ch);
490c2c66affSColin Finck 
491c2c66affSColin Finck   _Check_return_opt_
492c2c66affSColin Finck   _CRTIMP
493c2c66affSColin Finck   int
494c2c66affSColin Finck   __cdecl
495c2c66affSColin Finck   puts(
496c2c66affSColin Finck     _In_z_ const char *_Str);
497c2c66affSColin Finck 
498c2c66affSColin Finck   _Check_return_opt_
499c2c66affSColin Finck   _CRTIMP
500c2c66affSColin Finck   int
501c2c66affSColin Finck   __cdecl
502c2c66affSColin Finck   _putw(
503c2c66affSColin Finck     _In_ int _Word,
504c2c66affSColin Finck     _Inout_ FILE *_File);
505c2c66affSColin Finck 
506c2c66affSColin Finck #ifndef _CRT_DIRECTORY_DEFINED
507c2c66affSColin Finck #define _CRT_DIRECTORY_DEFINED
508c2c66affSColin Finck 
509c2c66affSColin Finck   _Check_return_
510c2c66affSColin Finck   _CRTIMP
511c2c66affSColin Finck   int
512c2c66affSColin Finck   __cdecl
513c2c66affSColin Finck   remove(
514c2c66affSColin Finck     _In_z_ const char *_Filename);
515c2c66affSColin Finck 
516c2c66affSColin Finck   _Check_return_
517c2c66affSColin Finck   _CRTIMP
518c2c66affSColin Finck   int
519c2c66affSColin Finck   __cdecl
520c2c66affSColin Finck   rename(
521c2c66affSColin Finck     _In_z_ const char *_OldFilename,
522c2c66affSColin Finck     _In_z_ const char *_NewFilename);
523c2c66affSColin Finck 
524c2c66affSColin Finck   _Check_return_
525c2c66affSColin Finck   _CRTIMP
526c2c66affSColin Finck   int
527c2c66affSColin Finck   __cdecl
528c2c66affSColin Finck   _unlink(
529c2c66affSColin Finck     _In_z_ const char *_Filename);
530c2c66affSColin Finck 
531c2c66affSColin Finck #ifndef NO_OLDNAMES
532c2c66affSColin Finck   _Check_return_
533c2c66affSColin Finck   _CRTIMP
534c2c66affSColin Finck   _CRT_NONSTDC_DEPRECATE(_unlink)
535c2c66affSColin Finck   int
536c2c66affSColin Finck   __cdecl
537c2c66affSColin Finck   unlink(
538c2c66affSColin Finck     _In_z_ const char *_Filename);
539c2c66affSColin Finck #endif
540c2c66affSColin Finck 
541c2c66affSColin Finck #endif /* _CRT_DIRECTORY_DEFINED */
542c2c66affSColin Finck 
543c2c66affSColin Finck   _CRTIMP
544c2c66affSColin Finck   void
545c2c66affSColin Finck   __cdecl
546c2c66affSColin Finck   rewind(
547c2c66affSColin Finck     _Inout_ FILE *_File);
548c2c66affSColin Finck 
549c2c66affSColin Finck   _Check_return_opt_
550c2c66affSColin Finck   _CRTIMP
551c2c66affSColin Finck   int
552c2c66affSColin Finck   __cdecl
553c2c66affSColin Finck   _rmtmp(void);
554c2c66affSColin Finck 
555c2c66affSColin Finck   _Check_return_
556c2c66affSColin Finck   _CRTIMP
557c2c66affSColin Finck   _CRT_INSECURE_DEPRECATE_CORE(scanf_s)
558c2c66affSColin Finck   int
559c2c66affSColin Finck   __cdecl
560c2c66affSColin Finck   scanf(
561c2c66affSColin Finck     _In_z_ _Scanf_format_string_ const char *_Format,
562c2c66affSColin Finck     ...);
563c2c66affSColin Finck 
564c2c66affSColin Finck   _CRTIMP
565c2c66affSColin Finck   _CRT_INSECURE_DEPRECATE(setvbuf)
566c2c66affSColin Finck   void
567c2c66affSColin Finck   __cdecl
568c2c66affSColin Finck   setbuf(
569c2c66affSColin Finck     _Inout_ FILE *_File,
570c2c66affSColin Finck     _Inout_updates_opt_(BUFSIZ) _Post_readable_size_(0) char *_Buffer);
571c2c66affSColin Finck 
572c2c66affSColin Finck   _Check_return_opt_
573c2c66affSColin Finck   _CRTIMP
574c2c66affSColin Finck   int
575c2c66affSColin Finck   __cdecl
576c2c66affSColin Finck   _setmaxstdio(
577c2c66affSColin Finck     _In_ int _Max);
578c2c66affSColin Finck 
579c2c66affSColin Finck   _Check_return_opt_
580c2c66affSColin Finck   _CRTIMP
581c2c66affSColin Finck   unsigned int
582c2c66affSColin Finck   __cdecl
583c2c66affSColin Finck   _set_output_format(
584c2c66affSColin Finck     _In_ unsigned int _Format);
585c2c66affSColin Finck 
586c2c66affSColin Finck   _Check_return_opt_
587c2c66affSColin Finck   _CRTIMP
588c2c66affSColin Finck   unsigned int
589c2c66affSColin Finck   __cdecl
590c2c66affSColin Finck   _get_output_format(void);
591c2c66affSColin Finck 
592c2c66affSColin Finck   _Check_return_opt_
593c2c66affSColin Finck   _CRTIMP
594c2c66affSColin Finck   int
595c2c66affSColin Finck   __cdecl
596c2c66affSColin Finck   setvbuf(
597c2c66affSColin Finck     _Inout_ FILE *_File,
598c2c66affSColin Finck     _Inout_updates_opt_z_(_Size) char *_Buf,
599c2c66affSColin Finck     _In_ int _Mode,
600c2c66affSColin Finck     _In_ size_t _Size);
601c2c66affSColin Finck 
602c2c66affSColin Finck   _Check_return_
603c2c66affSColin Finck   _CRTIMP
604c2c66affSColin Finck   int
605c2c66affSColin Finck   __cdecl
606c2c66affSColin Finck   _scprintf(
607c2c66affSColin Finck     _In_z_ _Printf_format_string_ const char *_Format,
608c2c66affSColin Finck     ...);
609c2c66affSColin Finck 
610c2c66affSColin Finck   _Check_return_
611c2c66affSColin Finck   _CRTIMP
612c2c66affSColin Finck   _CRT_INSECURE_DEPRECATE_CORE(sscanf_s)
613c2c66affSColin Finck   int
614c2c66affSColin Finck   __cdecl
615c2c66affSColin Finck   sscanf(
616c2c66affSColin Finck     _In_z_ const char *_Src,
617c2c66affSColin Finck     _In_z_ _Scanf_format_string_ const char *_Format,
618c2c66affSColin Finck     ...);
619c2c66affSColin Finck 
620c2c66affSColin Finck   _Check_return_opt_
621c2c66affSColin Finck   _CRTIMP
622c2c66affSColin Finck   _CRT_INSECURE_DEPRECATE_CORE(_snscanf_s)
623c2c66affSColin Finck   int
624c2c66affSColin Finck   __cdecl
625c2c66affSColin Finck   _snscanf(
626c2c66affSColin Finck     _In_reads_bytes_(_MaxCount) _Pre_z_ const char *_Src,
627c2c66affSColin Finck     _In_ size_t _MaxCount,
628c2c66affSColin Finck     _In_z_ _Scanf_format_string_ const char *_Format,
629c2c66affSColin Finck     ...);
630c2c66affSColin Finck 
631c2c66affSColin Finck   _Check_return_
632c2c66affSColin Finck   _CRTIMP
633c2c66affSColin Finck   _CRT_INSECURE_DEPRECATE(tmpfile_s)
634c2c66affSColin Finck   FILE*
635c2c66affSColin Finck   __cdecl
636c2c66affSColin Finck   tmpfile(void);
637c2c66affSColin Finck 
638c2c66affSColin Finck   _CRTIMP
639c2c66affSColin Finck   char*
640c2c66affSColin Finck   __cdecl
641c2c66affSColin Finck   tmpnam(
642c2c66affSColin Finck     _Pre_maybenull_ _Post_z_ char *_Buffer);
643c2c66affSColin Finck 
644c2c66affSColin Finck   _Check_return_opt_
645c2c66affSColin Finck   _CRTIMP_ALT
646c2c66affSColin Finck   int
647c2c66affSColin Finck   __cdecl
648c2c66affSColin Finck   ungetc(
649c2c66affSColin Finck     _In_ int _Ch,
650c2c66affSColin Finck     _Inout_ FILE *_File);
651c2c66affSColin Finck 
652c2c66affSColin Finck   _Check_return_opt_
653c2c66affSColin Finck   _CRTIMP
654c2c66affSColin Finck   int
655c2c66affSColin Finck   __cdecl
656c2c66affSColin Finck   vfprintf(
657c2c66affSColin Finck     _Inout_ FILE *_File,
658c2c66affSColin Finck     _In_z_ _Printf_format_string_ const char *_Format,
659c2c66affSColin Finck     va_list _ArgList);
660c2c66affSColin Finck 
661c2c66affSColin Finck   _Check_return_opt_
662c2c66affSColin Finck   _CRTIMP
663c2c66affSColin Finck   int
664c2c66affSColin Finck   __cdecl
665c2c66affSColin Finck   vprintf(
666c2c66affSColin Finck     _In_z_ _Printf_format_string_ const char *_Format,
667c2c66affSColin Finck     va_list _ArgList);
668c2c66affSColin Finck 
669c2c66affSColin Finck   /* Make sure macros are not defined.  */
670c2c66affSColin Finck #if __MINGW_GNUC_PREREQ(4,4)
671c2c66affSColin Finck #pragma push_macro("vsnprintf")
672c2c66affSColin Finck #pragma push_macro("snprintf")
673c2c66affSColin Finck #endif
674c2c66affSColin Finck   #undef vsnprintf
675c2c66affSColin Finck   #undef snprintf
676c2c66affSColin Finck 
677c2c66affSColin Finck   _Check_return_opt_
678c2c66affSColin Finck   _CRTIMP
679c2c66affSColin Finck   _CRT_INSECURE_DEPRECATE(vsnprintf_s)
680c2c66affSColin Finck   int
681c2c66affSColin Finck   __cdecl
682c2c66affSColin Finck   vsnprintf(
683c2c66affSColin Finck     _Out_writes_(_MaxCount) char *_DstBuf,
684c2c66affSColin Finck     _In_ size_t _MaxCount,
685c2c66affSColin Finck     _In_z_ _Printf_format_string_ const char *_Format,
686c2c66affSColin Finck     va_list _ArgList);
687c2c66affSColin Finck 
688c2c66affSColin Finck   _CRTIMP int __cdecl _snprintf(char *_Dest,size_t _Count,const char *_Format,...);
689c2c66affSColin Finck   _CRTIMP int __cdecl _vsnprintf(char *_Dest,size_t _Count,const char *_Format,va_list _Args);
690c2c66affSColin Finck   int __cdecl sprintf(char *_Dest,const char *_Format,...);
691c2c66affSColin Finck   int __cdecl vsprintf(char *_Dest,const char *_Format,va_list _Args);
692c2c66affSColin Finck 
693c2c66affSColin Finck #ifndef __NO_ISOCEXT  /* externs in libmingwex.a */
694c2c66affSColin Finck   int __cdecl snprintf(char* s, size_t n, const char*  format, ...);
695c2c66affSColin Finck   int __cdecl vscanf(const char * __restrict__ Format, va_list argp);
696c2c66affSColin Finck   int __cdecl vfscanf (FILE * __restrict__ fp, const char * Format,va_list argp);
697c2c66affSColin Finck   int __cdecl vsscanf (const char * __restrict__ _Str,const char * __restrict__ Format,va_list argp);
698c2c66affSColin Finck #endif
699c2c66affSColin Finck 
700c2c66affSColin Finck /* Restore may prior defined macros snprintf/vsnprintf.  */
701c2c66affSColin Finck #if __MINGW_GNUC_PREREQ(4,4)
702c2c66affSColin Finck #pragma pop_macro("snprintf")
703c2c66affSColin Finck #pragma pop_macro("vsnprintf")
704c2c66affSColin Finck #endif
705c2c66affSColin Finck 
706c2c66affSColin Finck #ifndef vsnprintf
707c2c66affSColin Finck   #define vsnprintf _vsnprintf
708c2c66affSColin Finck #endif
709c2c66affSColin Finck #ifndef snprintf
710c2c66affSColin Finck   #define snprintf _snprintf
711c2c66affSColin Finck #endif
712c2c66affSColin Finck 
713c2c66affSColin Finck   _Check_return_
714c2c66affSColin Finck   _CRTIMP
715c2c66affSColin Finck   int
716c2c66affSColin Finck   __cdecl
717c2c66affSColin Finck   _vscprintf(
718c2c66affSColin Finck     _In_z_ _Printf_format_string_ const char *_Format,
719c2c66affSColin Finck     va_list _ArgList);
720c2c66affSColin Finck 
721c2c66affSColin Finck #ifdef _SAFECRT_IMPL
722c2c66affSColin Finck #define _set_printf_count_output(i)
723c2c66affSColin Finck #define _get_printf_count_output() (FALSE)
724c2c66affSColin Finck #else
725c2c66affSColin Finck   _CRTIMP int __cdecl _set_printf_count_output(_In_ int _Value);
726c2c66affSColin Finck   _CRTIMP int __cdecl _get_printf_count_output(void);
727c2c66affSColin Finck #endif
728c2c66affSColin Finck 
729c2c66affSColin Finck #ifndef _WSTDIO_DEFINED
730c2c66affSColin Finck 
731c2c66affSColin Finck #ifndef WEOF
732c2c66affSColin Finck #define WEOF (wint_t)(0xFFFF)
733c2c66affSColin Finck #endif
734c2c66affSColin Finck 
735c2c66affSColin Finck #ifdef _POSIX_
736c2c66affSColin Finck   _CRTIMP
737c2c66affSColin Finck   FILE*
738c2c66affSColin Finck   __cdecl
739c2c66affSColin Finck   _wfsopen(
740c2c66affSColin Finck     const wchar_t *_Filename,
741c2c66affSColin Finck     const wchar_t *_Mode);
742c2c66affSColin Finck #else
743c2c66affSColin Finck   _Check_return_
744c2c66affSColin Finck   _CRTIMP
745c2c66affSColin Finck   FILE*
746c2c66affSColin Finck   __cdecl
747c2c66affSColin Finck   _wfsopen(
748c2c66affSColin Finck     _In_z_ const wchar_t *_Filename,
749c2c66affSColin Finck     _In_z_ const wchar_t *_Mode,
750c2c66affSColin Finck     _In_ int _ShFlag);
751c2c66affSColin Finck #endif
752c2c66affSColin Finck 
753c2c66affSColin Finck   _Check_return_opt_
754c2c66affSColin Finck   _CRTIMP
755c2c66affSColin Finck   wint_t
756c2c66affSColin Finck   __cdecl
757c2c66affSColin Finck   fgetwc(
758c2c66affSColin Finck     _Inout_ FILE *_File);
759c2c66affSColin Finck 
760c2c66affSColin Finck   _Check_return_opt_
761c2c66affSColin Finck   _CRTIMP
762c2c66affSColin Finck   wint_t
763c2c66affSColin Finck   __cdecl
764c2c66affSColin Finck   _fgetwchar(void);
765c2c66affSColin Finck 
766c2c66affSColin Finck   _Check_return_opt_
767c2c66affSColin Finck   _CRTIMP
768c2c66affSColin Finck   wint_t
769c2c66affSColin Finck   __cdecl
770c2c66affSColin Finck   fputwc(
771c2c66affSColin Finck     _In_ wchar_t _Ch,
772c2c66affSColin Finck     _Inout_ FILE *_File);
773c2c66affSColin Finck 
774c2c66affSColin Finck   _Check_return_opt_
775c2c66affSColin Finck   _CRTIMP
776c2c66affSColin Finck   wint_t
777c2c66affSColin Finck   __cdecl
778c2c66affSColin Finck   _fputwchar(
779c2c66affSColin Finck     _In_ wchar_t _Ch);
780c2c66affSColin Finck 
781c2c66affSColin Finck   _Check_return_
782c2c66affSColin Finck   _CRTIMP
783c2c66affSColin Finck   wint_t
784c2c66affSColin Finck   __cdecl
785c2c66affSColin Finck   getwc(
786c2c66affSColin Finck     _Inout_ FILE *_File);
787c2c66affSColin Finck 
788c2c66affSColin Finck   _Check_return_
789c2c66affSColin Finck   _CRTIMP
790c2c66affSColin Finck   wint_t
791c2c66affSColin Finck   __cdecl
792c2c66affSColin Finck   getwchar(void);
793c2c66affSColin Finck 
794c2c66affSColin Finck   _Check_return_opt_
795c2c66affSColin Finck   _CRTIMP
796c2c66affSColin Finck   wint_t
797c2c66affSColin Finck   __cdecl
798c2c66affSColin Finck   putwc(
799c2c66affSColin Finck     _In_ wchar_t _Ch,
800c2c66affSColin Finck     _Inout_ FILE *_File);
801c2c66affSColin Finck 
802c2c66affSColin Finck   _Check_return_opt_
803c2c66affSColin Finck   _CRTIMP
804c2c66affSColin Finck   wint_t
805c2c66affSColin Finck   __cdecl
806c2c66affSColin Finck   putwchar(
807c2c66affSColin Finck     _In_ wchar_t _Ch);
808c2c66affSColin Finck 
809c2c66affSColin Finck   _Check_return_opt_
810c2c66affSColin Finck   _CRTIMP
811c2c66affSColin Finck   wint_t
812c2c66affSColin Finck   __cdecl
813c2c66affSColin Finck   ungetwc(
814c2c66affSColin Finck     _In_ wint_t _Ch,
815c2c66affSColin Finck     _Inout_ FILE *_File);
816c2c66affSColin Finck 
817c2c66affSColin Finck   _Check_return_opt_
818c2c66affSColin Finck   _CRTIMP
819c2c66affSColin Finck   wchar_t*
820c2c66affSColin Finck   __cdecl
821c2c66affSColin Finck   fgetws(
822c2c66affSColin Finck     _Out_writes_z_(_SizeInWords) wchar_t *_Dst,
823c2c66affSColin Finck     _In_ int _SizeInWords,
824c2c66affSColin Finck     _Inout_ FILE *_File);
825c2c66affSColin Finck 
826c2c66affSColin Finck   _Check_return_opt_
827c2c66affSColin Finck   _CRTIMP
828c2c66affSColin Finck   int
829c2c66affSColin Finck   __cdecl
830c2c66affSColin Finck   fputws(
831c2c66affSColin Finck     _In_z_ const wchar_t *_Str,
832c2c66affSColin Finck     _Inout_ FILE *_File);
833c2c66affSColin Finck 
834c2c66affSColin Finck   _CRTIMP
835c2c66affSColin Finck   wchar_t*
836c2c66affSColin Finck   __cdecl
837c2c66affSColin Finck   _getws(
838c2c66affSColin Finck     wchar_t *_String);
839c2c66affSColin Finck 
840c2c66affSColin Finck   _Check_return_opt_
841c2c66affSColin Finck   _CRTIMP
842c2c66affSColin Finck   int
843c2c66affSColin Finck   __cdecl
844c2c66affSColin Finck   _putws(
845c2c66affSColin Finck     _In_z_ const wchar_t *_Str);
846c2c66affSColin Finck 
847c2c66affSColin Finck   _Check_return_opt_
848c2c66affSColin Finck   _CRTIMP
849c2c66affSColin Finck   int
850c2c66affSColin Finck   __cdecl
851c2c66affSColin Finck   fwprintf(
852c2c66affSColin Finck     _Inout_ FILE *_File,
853c2c66affSColin Finck     _In_z_ _Printf_format_string_ const wchar_t *_Format,
854c2c66affSColin Finck     ...);
855c2c66affSColin Finck 
856c2c66affSColin Finck   _Check_return_opt_
857c2c66affSColin Finck   _CRTIMP
858c2c66affSColin Finck   int
859c2c66affSColin Finck   __cdecl
860c2c66affSColin Finck   wprintf(
861c2c66affSColin Finck     _In_z_ _Printf_format_string_ const wchar_t *_Format,
862c2c66affSColin Finck     ...);
863c2c66affSColin Finck 
864c2c66affSColin Finck   _Check_return_
865c2c66affSColin Finck   _CRTIMP
866c2c66affSColin Finck   int
867c2c66affSColin Finck   __cdecl
868c2c66affSColin Finck   _scwprintf(
869c2c66affSColin Finck     _In_z_ _Printf_format_string_ const wchar_t *_Format,
870c2c66affSColin Finck     ...);
871c2c66affSColin Finck 
872c2c66affSColin Finck   _Check_return_opt_
873c2c66affSColin Finck   _CRTIMP
874c2c66affSColin Finck   int
875c2c66affSColin Finck   __cdecl
876c2c66affSColin Finck   vfwprintf(
877c2c66affSColin Finck     _Inout_ FILE *_File,
878c2c66affSColin Finck     _In_z_ _Printf_format_string_ const wchar_t *_Format,
879c2c66affSColin Finck     va_list _ArgList);
880c2c66affSColin Finck 
881c2c66affSColin Finck   _Check_return_opt_
882c2c66affSColin Finck   _CRTIMP
883c2c66affSColin Finck   int
884c2c66affSColin Finck   __cdecl
885c2c66affSColin Finck   vwprintf(
886c2c66affSColin Finck     _In_z_ _Printf_format_string_ const wchar_t *_Format,
887c2c66affSColin Finck     va_list _ArgList);
888c2c66affSColin Finck 
889c2c66affSColin Finck   _Check_return_opt_
890c2c66affSColin Finck   _CRTIMP
891c2c66affSColin Finck   int
892c2c66affSColin Finck   __cdecl
893c2c66affSColin Finck   swprintf(
894c2c66affSColin Finck     _Out_ wchar_t*,
895c2c66affSColin Finck     _Printf_format_string_ const wchar_t*,
896c2c66affSColin Finck     ...);
897c2c66affSColin Finck 
898c2c66affSColin Finck   _CRTIMP
899c2c66affSColin Finck   int
900c2c66affSColin Finck   __cdecl
901c2c66affSColin Finck   vswprintf(
902c2c66affSColin Finck     _Out_ wchar_t*,
903c2c66affSColin Finck     const wchar_t*,
904c2c66affSColin Finck     va_list);
905c2c66affSColin Finck 
906c2c66affSColin Finck   _Check_return_opt_
907c2c66affSColin Finck   _CRTIMP
908c2c66affSColin Finck   int
909c2c66affSColin Finck   __cdecl
910c2c66affSColin Finck   _swprintf_c(
911c2c66affSColin Finck     _Out_writes_z_(_SizeInWords) wchar_t *_DstBuf,
912c2c66affSColin Finck     _In_ size_t _SizeInWords,
913c2c66affSColin Finck     _In_z_ _Printf_format_string_ const wchar_t *_Format,
914c2c66affSColin Finck     ...);
915c2c66affSColin Finck 
916c2c66affSColin Finck   _Check_return_opt_
917c2c66affSColin Finck   _CRTIMP
918c2c66affSColin Finck   int
919c2c66affSColin Finck   __cdecl
920c2c66affSColin Finck   _vswprintf_c(
921c2c66affSColin Finck     _Out_writes_z_(_SizeInWords) wchar_t *_DstBuf,
922c2c66affSColin Finck     _In_ size_t _SizeInWords,
923c2c66affSColin Finck     _In_z_ _Printf_format_string_ const wchar_t *_Format,
924c2c66affSColin Finck     va_list _ArgList);
925c2c66affSColin Finck 
926c2c66affSColin Finck   _CRTIMP int __cdecl _snwprintf(wchar_t *_Dest,size_t _Count,const wchar_t *_Format,...);
927c2c66affSColin Finck   _CRTIMP int __cdecl _vsnwprintf(wchar_t *_Dest,size_t _Count,const wchar_t *_Format,va_list _Args);
928c2c66affSColin Finck #ifndef __NO_ISOCEXT  /* externs in libmingwex.a */
929c2c66affSColin Finck   _CRTIMP int __cdecl snwprintf (wchar_t* s, size_t n, const wchar_t*  format, ...);
930c2c66affSColin Finck   __CRT_INLINE int __cdecl vsnwprintf (wchar_t* s, size_t n, const wchar_t* format, va_list arg)
931c2c66affSColin Finck   {
932c2c66affSColin Finck #ifdef _MSC_VER
933c2c66affSColin Finck #pragma warning(push)
934c2c66affSColin Finck #pragma warning(disable:28719) /* disable banned api usage warning */
935c2c66affSColin Finck #endif /* _MSC_VER */
936c2c66affSColin Finck       return _vsnwprintf(s,n,format,arg);
937c2c66affSColin Finck #ifdef _MSC_VER
938c2c66affSColin Finck #pragma warning(pop)
939c2c66affSColin Finck #endif /* _MSC_VER */
940c2c66affSColin Finck   }
941c2c66affSColin Finck   _CRTIMP int __cdecl vwscanf (const wchar_t *, va_list);
942c2c66affSColin Finck   _CRTIMP int __cdecl vfwscanf (FILE *,const wchar_t *,va_list);
943c2c66affSColin Finck   _CRTIMP int __cdecl vswscanf (const wchar_t *,const wchar_t *,va_list);
944c2c66affSColin Finck #endif
945c2c66affSColin Finck   _CRTIMP int __cdecl _swprintf(wchar_t *_Dest,const wchar_t *_Format,...);
946c2c66affSColin Finck   _CRTIMP int __cdecl _vswprintf(wchar_t *_Dest,const wchar_t *_Format,va_list _Args);
947c2c66affSColin Finck 
948c2c66affSColin Finck #ifndef RC_INVOKED
949c2c66affSColin Finck #include <vadefs.h>
950c2c66affSColin Finck #endif
951c2c66affSColin Finck 
952c2c66affSColin Finck #if 0 //this is for MSVCRT80 and higher, which we don't use nor implement
953c2c66affSColin Finck #ifdef _CRT_NON_CONFORMING_SWPRINTFS
954c2c66affSColin Finck #ifndef __cplusplus
955c2c66affSColin Finck #define swprintf _swprintf
956c2c66affSColin Finck #define vswprintf _vswprintf
957c2c66affSColin Finck #define _swprintf_l __swprintf_l
958c2c66affSColin Finck #define _vswprintf_l __vswprintf_l
959c2c66affSColin Finck #endif
960c2c66affSColin Finck #endif
961c2c66affSColin Finck #endif
962c2c66affSColin Finck 
963c2c66affSColin Finck   _Check_return_
964c2c66affSColin Finck   _CRTIMP
965c2c66affSColin Finck   wchar_t*
966c2c66affSColin Finck   __cdecl
967c2c66affSColin Finck   _wtempnam(
968c2c66affSColin Finck     _In_opt_z_ const wchar_t *_Directory,
969c2c66affSColin Finck     _In_opt_z_ const wchar_t *_FilePrefix);
970c2c66affSColin Finck 
971c2c66affSColin Finck   _Check_return_
972c2c66affSColin Finck   _CRTIMP
973c2c66affSColin Finck   int
974c2c66affSColin Finck   __cdecl
975c2c66affSColin Finck   _vscwprintf(
976c2c66affSColin Finck     _In_z_ _Printf_format_string_ const wchar_t *_Format,
977c2c66affSColin Finck     va_list _ArgList);
978c2c66affSColin Finck 
979c2c66affSColin Finck   _Check_return_
980c2c66affSColin Finck   _CRTIMP
981c2c66affSColin Finck   int
982c2c66affSColin Finck   __cdecl
983c2c66affSColin Finck   fwscanf(
984c2c66affSColin Finck     _Inout_ FILE *_File,
985c2c66affSColin Finck     _In_z_ _Scanf_format_string_ const wchar_t *_Format,
986c2c66affSColin Finck     ...);
987c2c66affSColin Finck 
988c2c66affSColin Finck   _Check_return_
989c2c66affSColin Finck   _CRTIMP
990c2c66affSColin Finck   int
991c2c66affSColin Finck   __cdecl
992c2c66affSColin Finck   swscanf(
993c2c66affSColin Finck     _In_z_ const wchar_t *_Src,
994c2c66affSColin Finck     _In_z_ _Scanf_format_string_ const wchar_t *_Format,
995c2c66affSColin Finck     ...);
996c2c66affSColin Finck 
997c2c66affSColin Finck   _Check_return_opt_
998c2c66affSColin Finck   _CRTIMP
999c2c66affSColin Finck   int
1000c2c66affSColin Finck   __cdecl
1001c2c66affSColin Finck   _snwscanf(
1002c2c66affSColin Finck     _In_reads_(_MaxCount) _Pre_z_ const wchar_t *_Src,
1003c2c66affSColin Finck     _In_ size_t _MaxCount,
1004c2c66affSColin Finck     _In_z_ _Scanf_format_string_ const wchar_t *_Format,
1005c2c66affSColin Finck     ...);
1006c2c66affSColin Finck 
1007c2c66affSColin Finck   _Check_return_
1008c2c66affSColin Finck   _CRTIMP
1009c2c66affSColin Finck   int
1010c2c66affSColin Finck   __cdecl
1011c2c66affSColin Finck   wscanf(
1012c2c66affSColin Finck     _In_z_ _Scanf_format_string_ const wchar_t *_Format,
1013c2c66affSColin Finck     ...);
1014c2c66affSColin Finck 
1015c2c66affSColin Finck   _Check_return_
1016c2c66affSColin Finck   _CRTIMP
1017c2c66affSColin Finck   FILE*
1018c2c66affSColin Finck   __cdecl
1019c2c66affSColin Finck   _wfdopen(
1020c2c66affSColin Finck     _In_ int _FileHandle,
1021c2c66affSColin Finck     _In_z_ const wchar_t *_Mode);
1022c2c66affSColin Finck 
1023c2c66affSColin Finck   _Check_return_
1024c2c66affSColin Finck   _CRTIMP
1025c2c66affSColin Finck   FILE*
1026c2c66affSColin Finck   __cdecl
1027c2c66affSColin Finck   _wfopen(
1028c2c66affSColin Finck     _In_z_ const wchar_t *_Filename,
1029c2c66affSColin Finck     _In_z_ const wchar_t *_Mode);
1030c2c66affSColin Finck 
1031c2c66affSColin Finck   _Check_return_
1032c2c66affSColin Finck   _CRTIMP
1033c2c66affSColin Finck   FILE*
1034c2c66affSColin Finck   __cdecl
1035c2c66affSColin Finck   _wfreopen(
1036c2c66affSColin Finck     _In_z_ const wchar_t *_Filename,
1037c2c66affSColin Finck     _In_z_ const wchar_t *_Mode,
1038c2c66affSColin Finck     _Inout_ FILE *_OldFile);
1039c2c66affSColin Finck 
1040c2c66affSColin Finck #ifndef _CRT_WPERROR_DEFINED
1041c2c66affSColin Finck #define _CRT_WPERROR_DEFINED
1042c2c66affSColin Finck   _CRTIMP
1043c2c66affSColin Finck   void
1044c2c66affSColin Finck   __cdecl
1045c2c66affSColin Finck   _wperror(
1046c2c66affSColin Finck     _In_opt_z_ const wchar_t *_ErrMsg);
1047c2c66affSColin Finck #endif
1048c2c66affSColin Finck 
1049c2c66affSColin Finck   _Check_return_
1050c2c66affSColin Finck   _CRTIMP
1051c2c66affSColin Finck   FILE*
1052c2c66affSColin Finck   __cdecl
1053c2c66affSColin Finck   _wpopen(
1054c2c66affSColin Finck     _In_z_ const wchar_t *_Command,
1055c2c66affSColin Finck     _In_z_ const wchar_t *_Mode);
1056c2c66affSColin Finck 
1057c2c66affSColin Finck #if !defined(NO_OLDNAMES) && !defined(wpopen)
1058c2c66affSColin Finck #define wpopen _wpopen
1059c2c66affSColin Finck #endif
1060c2c66affSColin Finck 
1061c2c66affSColin Finck   _Check_return_
1062c2c66affSColin Finck   _CRTIMP
1063c2c66affSColin Finck   int
1064c2c66affSColin Finck   __cdecl
1065c2c66affSColin Finck   _wremove(
1066c2c66affSColin Finck     _In_z_ const wchar_t *_Filename);
1067c2c66affSColin Finck 
1068c2c66affSColin Finck   _CRTIMP
1069c2c66affSColin Finck   wchar_t*
1070c2c66affSColin Finck   __cdecl
1071c2c66affSColin Finck   _wtmpnam(
1072c2c66affSColin Finck     _Pre_maybenull_ _Post_z_ wchar_t *_Buffer);
1073c2c66affSColin Finck 
1074c2c66affSColin Finck   _Check_return_opt_
1075c2c66affSColin Finck   _CRTIMP
1076c2c66affSColin Finck   wint_t
1077c2c66affSColin Finck   __cdecl
1078c2c66affSColin Finck   _fgetwc_nolock(
1079c2c66affSColin Finck     _Inout_ FILE *_File);
1080c2c66affSColin Finck 
1081c2c66affSColin Finck   _Check_return_opt_
1082c2c66affSColin Finck   _CRTIMP
1083c2c66affSColin Finck   wint_t
1084c2c66affSColin Finck   __cdecl
1085c2c66affSColin Finck   _fputwc_nolock(
1086c2c66affSColin Finck     _In_ wchar_t _Ch,
1087c2c66affSColin Finck     _Inout_ FILE *_File);
1088c2c66affSColin Finck 
1089c2c66affSColin Finck   _Check_return_opt_
1090c2c66affSColin Finck   _CRTIMP
1091c2c66affSColin Finck   wint_t
1092c2c66affSColin Finck   __cdecl
1093c2c66affSColin Finck   _ungetwc_nolock(
1094c2c66affSColin Finck     _In_ wint_t _Ch,
1095c2c66affSColin Finck     _Inout_ FILE *_File);
1096c2c66affSColin Finck 
1097c2c66affSColin Finck #undef _CRT_GETPUTWCHAR_NOINLINE
1098c2c66affSColin Finck 
1099c2c66affSColin Finck #if !defined(__cplusplus) || defined(_CRT_GETPUTWCHAR_NOINLINE)
1100c2c66affSColin Finck #define getwchar() fgetwc(stdin)
1101c2c66affSColin Finck #define putwchar(_c) fputwc((_c),stdout)
1102c2c66affSColin Finck #else
1103c2c66affSColin Finck   __CRT_INLINE wint_t __cdecl getwchar() { return (fgetwc(stdin)); }
1104c2c66affSColin Finck   __CRT_INLINE wint_t __cdecl putwchar(wchar_t _C) { return (fputwc(_C,stdout)); }
1105c2c66affSColin Finck #endif
1106c2c66affSColin Finck 
1107c2c66affSColin Finck #define getwc(_stm) fgetwc(_stm)
1108c2c66affSColin Finck #define putwc(_c,_stm) fputwc(_c,_stm)
1109c2c66affSColin Finck #define _putwc_nolock(_c,_stm) _fputwc_nolock(_c,_stm)
1110c2c66affSColin Finck #define _getwc_nolock(_stm) _fgetwc_nolock(_stm)
1111c2c66affSColin Finck 
1112c2c66affSColin Finck #define _WSTDIO_DEFINED
1113c2c66affSColin Finck #endif
1114c2c66affSColin Finck 
1115c2c66affSColin Finck #define _STDIO_DEFINED
1116c2c66affSColin Finck #endif
1117c2c66affSColin Finck 
1118c2c66affSColin Finck #define _fgetc_nolock(_stream) (--(_stream)->_cnt >= 0 ? 0xff & *(_stream)->_ptr++ : _filbuf(_stream))
1119c2c66affSColin Finck #define _fputc_nolock(_c,_stream) (--(_stream)->_cnt >= 0 ? 0xff & (*(_stream)->_ptr++ = (char)(_c)) : _flsbuf((_c),(_stream)))
1120c2c66affSColin Finck #define _getc_nolock(_stream) _fgetc_nolock(_stream)
1121c2c66affSColin Finck #define _putc_nolock(_c,_stream) _fputc_nolock(_c,_stream)
1122c2c66affSColin Finck #define _getchar_nolock() _getc_nolock(stdin)
1123c2c66affSColin Finck #define _putchar_nolock(_c) _putc_nolock((_c),stdout)
1124c2c66affSColin Finck #define _getwchar_nolock() _getwc_nolock(stdin)
1125c2c66affSColin Finck #define _putwchar_nolock(_c) _putwc_nolock((_c),stdout)
1126c2c66affSColin Finck 
1127c2c66affSColin Finck   _CRTIMP
1128c2c66affSColin Finck   void
1129c2c66affSColin Finck   __cdecl
1130c2c66affSColin Finck   _lock_file(
1131c2c66affSColin Finck     _Inout_ FILE *_File);
1132c2c66affSColin Finck 
1133c2c66affSColin Finck   _CRTIMP
1134c2c66affSColin Finck   void
1135c2c66affSColin Finck   __cdecl
1136c2c66affSColin Finck   _unlock_file(
1137c2c66affSColin Finck     _Inout_ FILE *_File);
1138c2c66affSColin Finck 
1139c2c66affSColin Finck   _Check_return_opt_
1140c2c66affSColin Finck   _CRTIMP
1141c2c66affSColin Finck   int
1142c2c66affSColin Finck   __cdecl
1143c2c66affSColin Finck   _fclose_nolock(
1144c2c66affSColin Finck     _Inout_ FILE *_File);
1145c2c66affSColin Finck 
1146c2c66affSColin Finck   _Check_return_opt_
1147c2c66affSColin Finck   _CRTIMP
1148c2c66affSColin Finck   int
1149c2c66affSColin Finck   __cdecl
1150c2c66affSColin Finck   _fflush_nolock(
1151c2c66affSColin Finck     _Inout_opt_ FILE *_File);
1152c2c66affSColin Finck 
1153c2c66affSColin Finck   _Check_return_opt_
1154c2c66affSColin Finck   _CRTIMP
1155c2c66affSColin Finck   size_t
1156c2c66affSColin Finck   __cdecl
1157c2c66affSColin Finck   _fread_nolock(
1158c2c66affSColin Finck     _Out_writes_bytes_(_ElementSize * _Count) void *_DstBuf,
1159c2c66affSColin Finck     _In_ size_t _ElementSize,
1160c2c66affSColin Finck     _In_ size_t _Count,
1161c2c66affSColin Finck     _Inout_ FILE *_File);
1162c2c66affSColin Finck 
1163c2c66affSColin Finck   _Check_return_opt_
1164c2c66affSColin Finck   _CRTIMP
1165c2c66affSColin Finck   int
1166c2c66affSColin Finck   __cdecl
1167c2c66affSColin Finck   _fseek_nolock(
1168c2c66affSColin Finck     _Inout_ FILE *_File,
1169c2c66affSColin Finck     _In_ long _Offset,
1170c2c66affSColin Finck     _In_ int _Origin);
1171c2c66affSColin Finck 
1172c2c66affSColin Finck   _Check_return_
1173c2c66affSColin Finck   _CRTIMP
1174c2c66affSColin Finck   long
1175c2c66affSColin Finck   __cdecl
1176c2c66affSColin Finck   _ftell_nolock(
1177c2c66affSColin Finck     _Inout_ FILE *_File);
1178c2c66affSColin Finck 
1179c2c66affSColin Finck   _Check_return_opt_
1180c2c66affSColin Finck   __MINGW_EXTENSION
1181c2c66affSColin Finck   _CRTIMP
1182c2c66affSColin Finck   int
1183c2c66affSColin Finck   __cdecl
1184c2c66affSColin Finck   _fseeki64_nolock(
1185c2c66affSColin Finck     _Inout_ FILE *_File,
1186c2c66affSColin Finck     _In_ __int64 _Offset,
1187c2c66affSColin Finck     _In_ int _Origin);
1188c2c66affSColin Finck 
1189c2c66affSColin Finck   __MINGW_EXTENSION
1190*e10892e4SJérôme Gardou   _Check_return_
1191c2c66affSColin Finck   _CRTIMP
1192c2c66affSColin Finck   __int64
1193c2c66affSColin Finck   __cdecl
1194c2c66affSColin Finck   _ftelli64_nolock(
1195c2c66affSColin Finck     _Inout_ FILE *_File);
1196c2c66affSColin Finck 
1197c2c66affSColin Finck   _Check_return_opt_
1198c2c66affSColin Finck   _CRTIMP
1199c2c66affSColin Finck   size_t
1200c2c66affSColin Finck   __cdecl
1201c2c66affSColin Finck   _fwrite_nolock(
1202c2c66affSColin Finck     _In_reads_bytes_(_Size * _Count) const void *_DstBuf,
1203c2c66affSColin Finck     _In_ size_t _Size,
1204c2c66affSColin Finck     _In_ size_t _Count,
1205c2c66affSColin Finck     _Inout_ FILE *_File);
1206c2c66affSColin Finck 
1207c2c66affSColin Finck   _Check_return_opt_
1208c2c66affSColin Finck   _CRTIMP
1209c2c66affSColin Finck   int
1210c2c66affSColin Finck   __cdecl
1211c2c66affSColin Finck   _ungetc_nolock(
1212c2c66affSColin Finck     _In_ int _Ch,
1213c2c66affSColin Finck     _Inout_ FILE *_File);
1214c2c66affSColin Finck 
1215c2c66affSColin Finck #if !defined(NO_OLDNAMES) || !defined(_POSIX)
1216c2c66affSColin Finck 
1217c2c66affSColin Finck #define P_tmpdir _P_tmpdir
1218c2c66affSColin Finck #define SYS_OPEN _SYS_OPEN
1219c2c66affSColin Finck 
1220c2c66affSColin Finck   _CRTIMP
1221c2c66affSColin Finck   char*
1222c2c66affSColin Finck   __cdecl
1223c2c66affSColin Finck   tempnam(
1224c2c66affSColin Finck     _In_opt_z_ const char *_Directory,
1225c2c66affSColin Finck     _In_opt_z_ const char *_FilePrefix);
1226c2c66affSColin Finck 
1227c2c66affSColin Finck   _Check_return_opt_
1228c2c66affSColin Finck   _CRTIMP
1229c2c66affSColin Finck   int
1230c2c66affSColin Finck   __cdecl
1231c2c66affSColin Finck   fcloseall(void);
1232c2c66affSColin Finck 
1233c2c66affSColin Finck   _Check_return_
1234c2c66affSColin Finck   _CRTIMP
1235c2c66affSColin Finck   FILE*
1236c2c66affSColin Finck   __cdecl
1237c2c66affSColin Finck   fdopen(
1238c2c66affSColin Finck     _In_ int _FileHandle,
1239c2c66affSColin Finck     _In_z_ const char *_Format);
1240c2c66affSColin Finck 
1241c2c66affSColin Finck   _Check_return_opt_
1242c2c66affSColin Finck   _CRTIMP
1243c2c66affSColin Finck   int
1244c2c66affSColin Finck   __cdecl
1245c2c66affSColin Finck   fgetchar(void);
1246c2c66affSColin Finck 
1247c2c66affSColin Finck   _Check_return_
1248c2c66affSColin Finck   _CRTIMP
1249c2c66affSColin Finck   int
1250c2c66affSColin Finck   __cdecl
1251c2c66affSColin Finck   fileno(
1252c2c66affSColin Finck     _In_ FILE *_File);
1253c2c66affSColin Finck 
1254c2c66affSColin Finck   _Check_return_opt_
1255c2c66affSColin Finck   _CRTIMP
1256c2c66affSColin Finck   int
1257c2c66affSColin Finck   __cdecl
1258c2c66affSColin Finck   flushall(void);
1259c2c66affSColin Finck 
1260c2c66affSColin Finck   _Check_return_opt_
1261c2c66affSColin Finck   _CRTIMP
1262c2c66affSColin Finck   int
1263c2c66affSColin Finck   __cdecl
1264c2c66affSColin Finck   fputchar(
1265c2c66affSColin Finck     _In_ int _Ch);
1266c2c66affSColin Finck 
1267c2c66affSColin Finck   _Check_return_
1268c2c66affSColin Finck   _CRTIMP
1269c2c66affSColin Finck   int
1270c2c66affSColin Finck   __cdecl
1271c2c66affSColin Finck   getw(
1272c2c66affSColin Finck     _Inout_ FILE *_File);
1273c2c66affSColin Finck 
1274c2c66affSColin Finck   _Check_return_opt_
1275c2c66affSColin Finck   _CRTIMP
1276c2c66affSColin Finck   int
1277c2c66affSColin Finck   __cdecl
1278c2c66affSColin Finck   putw(
1279c2c66affSColin Finck     _In_ int _Ch,
1280c2c66affSColin Finck     _Inout_ FILE *_File);
1281c2c66affSColin Finck 
1282c2c66affSColin Finck   _Check_return_
1283c2c66affSColin Finck   _CRTIMP
1284c2c66affSColin Finck   int
1285c2c66affSColin Finck   __cdecl
1286c2c66affSColin Finck   rmtmp(void);
1287c2c66affSColin Finck 
1288c2c66affSColin Finck #endif /* !defined(NO_OLDNAMES) || !defined(_POSIX) */
1289c2c66affSColin Finck 
1290c2c66affSColin Finck #ifdef __cplusplus
1291c2c66affSColin Finck }
1292c2c66affSColin Finck #endif
1293c2c66affSColin Finck 
1294c2c66affSColin Finck #pragma pack(pop)
1295c2c66affSColin Finck 
1296c2c66affSColin Finck #include <sec_api/stdio_s.h>
1297c2c66affSColin Finck 
1298c2c66affSColin Finck #endif
1299