1 /**
2  * This file has no copyright assigned and is placed in the Public Domain.
3  * This file is part of the mingw-w64 runtime package.
4  * No warranty is given; refer to the file DISCLAIMER.PD within this package.
5  */
6 #ifndef _INC_STDIO_S
7 #define _INC_STDIO_S
8 
9 #include <stdio.h>
10 
11 #if defined(MINGW_HAS_SECURE_API)
12 
13 #if defined(__LIBMSVCRT__)
14 /* When building mingw-w64, this should be blank.  */
15 #define _SECIMP
16 #else
17 #ifndef _SECIMP
18 #define _SECIMP __declspec(dllimport)
19 #endif /* _SECIMP */
20 #endif /* defined(_CRTBLD) || defined(__LIBMSVCRT__) */
21 
22 #ifdef __cplusplus
23 extern "C" {
24 #endif
25 
26 #ifndef _STDIO_S_DEFINED
27 #define _STDIO_S_DEFINED
28   _CRTIMP errno_t __cdecl clearerr_s(FILE *_File);
29 
30   size_t __cdecl fread_s(void *_DstBuf,size_t _DstSize,size_t _ElementSize,size_t _Count,FILE *_File);
31 
32 #if __MSVCRT_VERSION__ >= 0x1400
33   int __cdecl __stdio_common_vsprintf_s(unsigned __int64 _Options, char *_Str, size_t _Len, const char *_Format, _locale_t _Locale, va_list _ArgList);
34   int __cdecl __stdio_common_vsprintf_p(unsigned __int64 _Options, char *_Str, size_t _Len, const char *_Format, _locale_t _Locale, va_list _ArgList);
35   int __cdecl __stdio_common_vsnprintf_s(unsigned __int64 _Options, char *_Str, size_t _Len, size_t _MaxCount, const char *_Format, _locale_t _Locale, va_list _ArgList);
36   int __cdecl __stdio_common_vfprintf_s(unsigned __int64 _Options, FILE *_File, const char *_Format, _locale_t _Locale, va_list _ArgList);
37   int __cdecl __stdio_common_vfprintf_p(unsigned __int64 _Options, FILE *_File, const char *_Format, _locale_t _Locale, va_list _ArgList);
38 
_vfscanf_s_l(FILE * _File,const char * _Format,_locale_t _Locale,va_list _ArgList)39   __mingw_ovr int __cdecl _vfscanf_s_l(FILE *_File, const char *_Format, _locale_t _Locale, va_list _ArgList)
40   {
41     return __stdio_common_vfscanf(UCRTBASE_SCANF_SECURECRT, _File, _Format, _Locale, _ArgList);
42   }
_fscanf_s_l(FILE * _File,const char * _Format,_locale_t _Locale,...)43   __mingw_ovr int __cdecl _fscanf_s_l(FILE *_File, const char *_Format, _locale_t _Locale, ...)
44   {
45     __builtin_va_list _ArgList;
46     int _Ret;
47     __builtin_va_start(_ArgList, _Locale);
48     _Ret = _vfscanf_s_l(_File, _Format, _Locale, _ArgList);
49     __builtin_va_end(_ArgList);
50     return _Ret;
51   }
_scanf_s_l(const char * _Format,_locale_t _Locale,...)52   __mingw_ovr int __cdecl _scanf_s_l(const char *_Format, _locale_t _Locale ,...)
53   {
54     __builtin_va_list _ArgList;
55     int _Ret;
56     __builtin_va_start(_ArgList, _Locale);
57     _Ret = _vfscanf_s_l(stdin, _Format, _Locale, _ArgList);
58     __builtin_va_end(_ArgList);
59     return _Ret;
60   }
61 
_vfscanf_l(FILE * _File,const char * _Format,_locale_t _Locale,va_list _ArgList)62   __mingw_ovr int __cdecl _vfscanf_l(FILE *_File, const char *_Format, _locale_t _Locale, va_list _ArgList)
63   {
64     return __stdio_common_vfscanf(0, _File, _Format, _Locale, _ArgList);
65   }
_fscanf_l(FILE * _File,const char * _Format,_locale_t _Locale,...)66   __mingw_ovr int __cdecl _fscanf_l(FILE *_File, const char *_Format, _locale_t _Locale, ...)
67   {
68     __builtin_va_list _ArgList;
69     int _Ret;
70     __builtin_va_start(_ArgList, _Locale);
71     _Ret = _vfscanf_l(_File, _Format, _Locale, _ArgList);
72     __builtin_va_end(_ArgList);
73     return _Ret;
74   }
_scanf_l(const char * _Format,_locale_t _Locale,...)75   __mingw_ovr int __cdecl _scanf_l(const char *_Format, _locale_t _Locale, ...)
76   {
77     __builtin_va_list _ArgList;
78     int _Ret;
79     __builtin_va_start(_ArgList, _Locale);
80     _Ret = _vfscanf_l(stdin, _Format, _Locale, _ArgList);
81     __builtin_va_end(_ArgList);
82     return _Ret;
83   }
84 
_vsscanf_s_l(const char * _Src,const char * _Format,_locale_t _Locale,va_list _ArgList)85   __mingw_ovr int __cdecl _vsscanf_s_l(const char *_Src, const char *_Format, _locale_t _Locale, va_list _ArgList)
86   {
87     return __stdio_common_vsscanf(UCRTBASE_SCANF_SECURECRT, _Src, (size_t)-1, _Format, _Locale, _ArgList);
88   }
vsscanf_s(const char * _Src,const char * _Format,va_list _ArgList)89   __mingw_ovr int __cdecl vsscanf_s(const char *_Src, const char *_Format, va_list _ArgList)
90   {
91     return _vsscanf_s_l(_Src, _Format, NULL, _ArgList);
92   }
_sscanf_s_l(const char * _Src,const char * _Format,_locale_t _Locale,...)93   __mingw_ovr int __cdecl _sscanf_s_l(const char *_Src, const char *_Format, _locale_t _Locale, ...)
94   {
95     __builtin_va_list _ArgList;
96     int _Ret;
97     __builtin_va_start(_ArgList, _Locale);
98     _Ret = _vsscanf_s_l(_Src, _Format, _Locale, _ArgList);
99     __builtin_va_end(_ArgList);
100     return _Ret;
101   }
sscanf_s(const char * _Src,const char * _Format,...)102   __mingw_ovr int __cdecl sscanf_s(const char *_Src, const char *_Format, ...)
103   {
104     __builtin_va_list _ArgList;
105     int _Ret;
106     __builtin_va_start(_ArgList, _Format);
107     _Ret = _vsscanf_s_l(_Src, _Format, NULL, _ArgList);
108     __builtin_va_end(_ArgList);
109     return _Ret;
110   }
111 
_vsscanf_l(const char * _Src,const char * _Format,_locale_t _Locale,va_list _ArgList)112   __mingw_ovr int __cdecl _vsscanf_l(const char *_Src, const char *_Format, _locale_t _Locale, va_list _ArgList)
113   {
114     return __stdio_common_vsscanf(0, _Src, (size_t)-1, _Format, _Locale, _ArgList);
115   }
_sscanf_l(const char * _Src,const char * _Format,_locale_t _Locale,...)116   __mingw_ovr int __cdecl _sscanf_l(const char *_Src, const char *_Format, _locale_t _Locale, ...)
117   {
118     __builtin_va_list _ArgList;
119     int _Ret;
120     __builtin_va_start(_ArgList, _Locale);
121     _Ret = _vsscanf_l(_Src, _Format, _Locale, _ArgList);
122     __builtin_va_end(_ArgList);
123     return _Ret;
124   }
125 
126   // There is no _vsnscanf_s_l nor _vsnscanf_s
_snscanf_s_l(const char * _Src,size_t _MaxCount,const char * _Format,_locale_t _Locale,...)127   __mingw_ovr int __cdecl _snscanf_s_l(const char *_Src, size_t _MaxCount, const char *_Format, _locale_t _Locale, ...)
128   {
129     __builtin_va_list _ArgList;
130     int _Ret;
131     __builtin_va_start(_ArgList, _Locale);
132     _Ret = __stdio_common_vsscanf(UCRTBASE_SCANF_SECURECRT, _Src, _MaxCount, _Format, _Locale, _ArgList);
133     __builtin_va_end(_ArgList);
134     return _Ret;
135   }
_snscanf_s(const char * _Src,size_t _MaxCount,const char * _Format,...)136   __mingw_ovr int __cdecl _snscanf_s(const char *_Src, size_t _MaxCount, const char *_Format, ...)
137   {
138     __builtin_va_list _ArgList;
139     int _Ret;
140     __builtin_va_start(_ArgList, _Format);
141     _Ret = __stdio_common_vsscanf(UCRTBASE_SCANF_SECURECRT, _Src, _MaxCount, _Format, NULL, _ArgList);
142     __builtin_va_end(_ArgList);
143     return _Ret;
144   }
145 
146   // There is no _vsnscanf_l
_snscanf_l(const char * _Src,size_t _MaxCount,const char * _Format,_locale_t _Locale,...)147   __mingw_ovr int __cdecl _snscanf_l(const char *_Src, size_t _MaxCount, const char *_Format, _locale_t _Locale, ...)
148   {
149     __builtin_va_list _ArgList;
150     int _Ret;
151     __builtin_va_start(_ArgList, _Locale);
152     _Ret = __stdio_common_vsscanf(0, _Src, _MaxCount, _Format, _Locale, _ArgList);
153     __builtin_va_end(_ArgList);
154     return _Ret;
155   }
156 
157 
_vfprintf_s_l(FILE * _File,const char * _Format,_locale_t _Locale,va_list _ArgList)158   __mingw_ovr int __cdecl _vfprintf_s_l(FILE *_File, const char *_Format, _locale_t _Locale, va_list _ArgList)
159   {
160     return __stdio_common_vfprintf_s(0, _File, _Format, _Locale, _ArgList);
161   }
vfprintf_s(FILE * _File,const char * _Format,va_list _ArgList)162   __mingw_ovr int __cdecl vfprintf_s(FILE *_File, const char *_Format, va_list _ArgList)
163   {
164     return _vfprintf_s_l(_File, _Format, NULL, _ArgList);
165   }
_vprintf_s_l(const char * _Format,_locale_t _Locale,va_list _ArgList)166   __mingw_ovr int __cdecl _vprintf_s_l(const char *_Format, _locale_t _Locale, va_list _ArgList)
167   {
168     return _vfprintf_s_l(stdout, _Format, _Locale, _ArgList);
169   }
vprintf_s(const char * _Format,va_list _ArgList)170   __mingw_ovr int __cdecl vprintf_s(const char *_Format, va_list _ArgList)
171   {
172     return _vfprintf_s_l(stdout, _Format, NULL, _ArgList);
173   }
_fprintf_s_l(FILE * _File,const char * _Format,_locale_t _Locale,...)174   __mingw_ovr int __cdecl _fprintf_s_l(FILE *_File, const char *_Format, _locale_t _Locale, ...)
175   {
176     __builtin_va_list _ArgList;
177     int _Ret;
178     __builtin_va_start(_ArgList, _Locale);
179     _Ret = _vfprintf_s_l(_File, _Format, _Locale, _ArgList);
180     __builtin_va_end(_ArgList);
181     return _Ret;
182   }
_printf_s_l(const char * _Format,_locale_t _Locale,...)183   __mingw_ovr int __cdecl _printf_s_l(const char *_Format, _locale_t _Locale, ...)
184   {
185     __builtin_va_list _ArgList;
186     int _Ret;
187     __builtin_va_start(_ArgList, _Locale);
188     _Ret = _vfprintf_s_l(stdout, _Format, _Locale, _ArgList);
189     __builtin_va_end(_ArgList);
190     return _Ret;
191   }
fprintf_s(FILE * _File,const char * _Format,...)192   __mingw_ovr int __cdecl fprintf_s(FILE *_File, const char *_Format, ...)
193   {
194     __builtin_va_list _ArgList;
195     int _Ret;
196     __builtin_va_start(_ArgList, _Format);
197     _Ret = _vfprintf_s_l(_File, _Format, NULL, _ArgList);
198     __builtin_va_end(_ArgList);
199     return _Ret;
200   }
printf_s(const char * _Format,...)201   __mingw_ovr int __cdecl printf_s(const char *_Format, ...)
202   {
203     __builtin_va_list _ArgList;
204     int _Ret;
205     __builtin_va_start(_ArgList, _Format);
206     _Ret = _vfprintf_s_l(stdout, _Format, NULL, _ArgList);
207     __builtin_va_end(_ArgList);
208     return _Ret;
209   }
210 
_vsnprintf_c_l(char * _DstBuf,size_t _MaxCount,const char * _Format,_locale_t _Locale,va_list _ArgList)211   __mingw_ovr int __cdecl _vsnprintf_c_l(char *_DstBuf, size_t _MaxCount, const char *_Format, _locale_t _Locale, va_list _ArgList)
212   {
213     return __stdio_common_vsprintf(0, _DstBuf, _MaxCount, _Format, _Locale, _ArgList);
214   }
_vsnprintf_c(char * _DstBuf,size_t _MaxCount,const char * _Format,va_list _ArgList)215   __mingw_ovr int __cdecl _vsnprintf_c(char *_DstBuf, size_t _MaxCount, const char *_Format, va_list _ArgList)
216   {
217     return _vsnprintf_c_l(_DstBuf, _MaxCount, _Format, NULL, _ArgList);
218   }
_snprintf_c_l(char * _DstBuf,size_t _MaxCount,const char * _Format,_locale_t _Locale,...)219   __mingw_ovr int __cdecl _snprintf_c_l(char *_DstBuf, size_t _MaxCount, const char *_Format, _locale_t _Locale, ...)
220   {
221     __builtin_va_list _ArgList;
222     int _Ret;
223     __builtin_va_start(_ArgList, _Locale);
224     _Ret = _vsnprintf_c_l(_DstBuf, _MaxCount, _Format, _Locale, _ArgList);
225     __builtin_va_end(_ArgList);
226     return _Ret;
227   }
_snprintf_c(char * _DstBuf,size_t _MaxCount,const char * _Format,...)228   __mingw_ovr int __cdecl _snprintf_c(char *_DstBuf, size_t _MaxCount, const char *_Format, ...)
229   {
230     __builtin_va_list _ArgList;
231     int _Ret;
232     __builtin_va_start(_ArgList, _Format);
233     _Ret = _vsnprintf_c_l(_DstBuf, _MaxCount, _Format, NULL, _ArgList);
234     __builtin_va_end(_ArgList);
235     return _Ret;
236   }
237 
_vsnprintf_s_l(char * _DstBuf,size_t _DstSize,size_t _MaxCount,const char * _Format,_locale_t _Locale,va_list _ArgList)238   __mingw_ovr int __cdecl _vsnprintf_s_l(char *_DstBuf, size_t _DstSize, size_t _MaxCount, const char *_Format, _locale_t _Locale, va_list _ArgList)
239   {
240     return __stdio_common_vsnprintf_s(0, _DstBuf, _DstSize, _MaxCount, _Format, _Locale, _ArgList);
241   }
vsnprintf_s(char * _DstBuf,size_t _DstSize,size_t _MaxCount,const char * _Format,va_list _ArgList)242   __mingw_ovr int __cdecl vsnprintf_s(char *_DstBuf, size_t _DstSize, size_t _MaxCount, const char *_Format, va_list _ArgList)
243   {
244     return _vsnprintf_s_l(_DstBuf, _DstSize, _MaxCount, _Format, NULL, _ArgList);
245   }
_vsnprintf_s(char * _DstBuf,size_t _DstSize,size_t _MaxCount,const char * _Format,va_list _ArgList)246   __mingw_ovr int __cdecl _vsnprintf_s(char *_DstBuf, size_t _DstSize, size_t _MaxCount, const char *_Format, va_list _ArgList)
247   {
248     return _vsnprintf_s_l(_DstBuf, _DstSize, _MaxCount, _Format, NULL, _ArgList);
249   }
_snprintf_s_l(char * _DstBuf,size_t _DstSize,size_t _MaxCount,const char * _Format,_locale_t _Locale,...)250   __mingw_ovr int __cdecl _snprintf_s_l(char *_DstBuf, size_t _DstSize, size_t _MaxCount, const char *_Format, _locale_t _Locale, ...)
251   {
252     __builtin_va_list _ArgList;
253     int _Ret;
254     __builtin_va_start(_ArgList, _Locale);
255     _Ret = _vsnprintf_s_l(_DstBuf, _DstSize, _MaxCount, _Format, _Locale, _ArgList);
256     __builtin_va_end(_ArgList);
257     return _Ret;
258   }
_snprintf_s(char * _DstBuf,size_t _DstSize,size_t _MaxCount,const char * _Format,...)259   __mingw_ovr int __cdecl _snprintf_s(char *_DstBuf, size_t _DstSize, size_t _MaxCount, const char *_Format, ...)
260   {
261     __builtin_va_list _ArgList;
262     int _Ret;
263     __builtin_va_start(_ArgList, _Format);
264     _Ret = _vsnprintf_s_l(_DstBuf, _DstSize, _MaxCount, _Format, NULL, _ArgList);
265     __builtin_va_end(_ArgList);
266     return _Ret;
267   }
268 
_vsprintf_s_l(char * _DstBuf,size_t _DstSize,const char * _Format,_locale_t _Locale,va_list _ArgList)269   __mingw_ovr int __cdecl _vsprintf_s_l(char *_DstBuf, size_t _DstSize, const char *_Format, _locale_t _Locale, va_list _ArgList)
270   {
271     return __stdio_common_vsprintf_s(0, _DstBuf, _DstSize, _Format, _Locale, _ArgList);
272   }
vsprintf_s(char * _DstBuf,size_t _Size,const char * _Format,va_list _ArgList)273   __mingw_ovr int __cdecl vsprintf_s(char *_DstBuf, size_t _Size, const char *_Format, va_list _ArgList)
274   {
275     return _vsprintf_s_l(_DstBuf, _Size, _Format, NULL, _ArgList);
276   }
_sprintf_s_l(char * _DstBuf,size_t _DstSize,const char * _Format,_locale_t _Locale,...)277   __mingw_ovr int __cdecl _sprintf_s_l(char *_DstBuf, size_t _DstSize, const char *_Format, _locale_t _Locale, ...)
278   {
279     __builtin_va_list _ArgList;
280     int _Ret;
281     __builtin_va_start(_ArgList, _Locale);
282     _Ret = _vsprintf_s_l(_DstBuf, _DstSize, _Format, _Locale, _ArgList);
283     __builtin_va_end(_ArgList);
284     return _Ret;
285   }
sprintf_s(char * _DstBuf,size_t _DstSize,const char * _Format,...)286   __mingw_ovr int __cdecl sprintf_s(char *_DstBuf, size_t _DstSize, const char *_Format, ...)
287   {
288     __builtin_va_list _ArgList;
289     int _Ret;
290     __builtin_va_start(_ArgList, _Format);
291     _Ret = _vsprintf_s_l(_DstBuf, _DstSize, _Format, NULL, _ArgList);
292     __builtin_va_end(_ArgList);
293     return _Ret;
294   }
295 
_vfprintf_p_l(FILE * _File,const char * _Format,_locale_t _Locale,va_list _ArgList)296   __mingw_ovr int __cdecl _vfprintf_p_l(FILE *_File, const char *_Format, _locale_t _Locale, va_list _ArgList)
297   {
298     return __stdio_common_vfprintf_p(0, _File, _Format, _Locale, _ArgList);
299   }
_vfprintf_p(FILE * _File,const char * _Format,va_list _ArgList)300   __mingw_ovr int __cdecl _vfprintf_p(FILE *_File, const char *_Format, va_list _ArgList)
301   {
302     return _vfprintf_p_l(_File, _Format, NULL, _ArgList);
303   }
_vprintf_p_l(const char * _Format,_locale_t _Locale,va_list _ArgList)304   __mingw_ovr int __cdecl _vprintf_p_l(const char *_Format, _locale_t _Locale, va_list _ArgList)
305   {
306     return _vfprintf_p_l(stdout, _Format, _Locale, _ArgList);
307   }
_vprintf_p(const char * _Format,va_list _ArgList)308   __mingw_ovr int __cdecl _vprintf_p(const char *_Format, va_list _ArgList)
309   {
310     return _vfprintf_p_l(stdout, _Format, NULL, _ArgList);
311   }
_fprintf_p_l(FILE * _File,const char * _Format,_locale_t _Locale,...)312   __mingw_ovr int __cdecl _fprintf_p_l(FILE *_File, const char *_Format, _locale_t _Locale, ...)
313   {
314     __builtin_va_list _ArgList;
315     int _Ret;
316     __builtin_va_start(_ArgList, _Locale);
317     _Ret = __stdio_common_vfprintf_p(0, _File, _Format, _Locale, _ArgList);
318     __builtin_va_end(_ArgList);
319     return _Ret;
320   }
_fprintf_p(FILE * _File,const char * _Format,...)321   __mingw_ovr int __cdecl _fprintf_p(FILE *_File, const char *_Format, ...)
322   {
323     __builtin_va_list _ArgList;
324     int _Ret;
325     __builtin_va_start(_ArgList, _Format);
326     _Ret = _vfprintf_p_l(_File, _Format, NULL, _ArgList);
327     __builtin_va_end(_ArgList);
328     return _Ret;
329   }
_printf_p_l(const char * _Format,_locale_t _Locale,...)330   __mingw_ovr int __cdecl _printf_p_l(const char *_Format, _locale_t _Locale, ...)
331   {
332     __builtin_va_list _ArgList;
333     int _Ret;
334     __builtin_va_start(_ArgList, _Locale);
335     _Ret = _vfprintf_p_l(stdout, _Format, _Locale, _ArgList);
336     __builtin_va_end(_ArgList);
337     return _Ret;
338   }
_printf_p(const char * _Format,...)339   __mingw_ovr int __cdecl _printf_p(const char *_Format, ...)
340   {
341     __builtin_va_list _ArgList;
342     int _Ret;
343     __builtin_va_start(_ArgList, _Format);
344     _Ret = _vfprintf_p_l(stdout, _Format, NULL, _ArgList);
345     __builtin_va_end(_ArgList);
346     return _Ret;
347   }
348 
_vsprintf_p_l(char * _DstBuf,size_t _MaxCount,const char * _Format,_locale_t _Locale,va_list _ArgList)349   __mingw_ovr int __cdecl _vsprintf_p_l(char *_DstBuf, size_t _MaxCount, const char *_Format, _locale_t _Locale, va_list _ArgList)
350   {
351     return __stdio_common_vsprintf_p(0, _DstBuf, _MaxCount, _Format, _Locale, _ArgList);
352   }
_vsprintf_p(char * _Dst,size_t _MaxCount,const char * _Format,va_list _ArgList)353   __mingw_ovr int __cdecl _vsprintf_p(char *_Dst, size_t _MaxCount, const char *_Format, va_list _ArgList)
354   {
355     return _vsprintf_p_l(_Dst, _MaxCount, _Format, NULL, _ArgList);
356   }
_sprintf_p_l(char * _DstBuf,size_t _MaxCount,const char * _Format,_locale_t _Locale,...)357   __mingw_ovr int __cdecl _sprintf_p_l(char *_DstBuf, size_t _MaxCount, const char *_Format, _locale_t _Locale, ...)
358   {
359     __builtin_va_list _ArgList;
360     int _Ret;
361     __builtin_va_start(_ArgList, _Locale);
362     _Ret = _vsprintf_p_l(_DstBuf, _MaxCount, _Format, _Locale, _ArgList);
363     __builtin_va_end(_ArgList);
364     return _Ret;
365   }
_sprintf_p(char * _Dst,size_t _MaxCount,const char * _Format,...)366   __mingw_ovr int __cdecl _sprintf_p(char *_Dst, size_t _MaxCount, const char *_Format, ...)
367   {
368     __builtin_va_list _ArgList;
369     int _Ret;
370     __builtin_va_start(_ArgList, _Format);
371     _Ret = _vsprintf_p_l(_Dst, _MaxCount, _Format, NULL, _ArgList);
372     __builtin_va_end(_ArgList);
373     return _Ret;
374   }
375 
_vscprintf_p_l(const char * _Format,_locale_t _Locale,va_list _ArgList)376   __mingw_ovr int __cdecl _vscprintf_p_l(const char *_Format, _locale_t _Locale, va_list _ArgList)
377   {
378     return __stdio_common_vsprintf_p(UCRTBASE_PRINTF_STANDARD_SNPRINTF_BEHAVIOUR, NULL, 0, _Format, _Locale, _ArgList);
379   }
_vscprintf_p(const char * _Format,va_list _ArgList)380   __mingw_ovr int __cdecl _vscprintf_p(const char *_Format, va_list _ArgList)
381   {
382     return _vscprintf_p_l(_Format, NULL, _ArgList);
383   }
_scprintf_p_l(const char * _Format,_locale_t _Locale,...)384   __mingw_ovr int __cdecl _scprintf_p_l(const char *_Format, _locale_t _Locale, ...)
385   {
386     __builtin_va_list _ArgList;
387     int _Ret;
388     __builtin_va_start(_ArgList, _Locale);
389     _Ret = _vscprintf_p_l(_Format, _Locale, _ArgList);
390     __builtin_va_end(_ArgList);
391     return _Ret;
392   }
_scprintf_p(const char * _Format,...)393   __mingw_ovr int __cdecl _scprintf_p(const char *_Format, ...)
394   {
395     __builtin_va_list _ArgList;
396     int _Ret;
397     __builtin_va_start(_ArgList, _Format);
398     _Ret = _vscprintf_p_l(_Format, NULL, _ArgList);
399     __builtin_va_end(_ArgList);
400     return _Ret;
401   }
402 
_vfprintf_l(FILE * _File,const char * _Format,_locale_t _Locale,va_list _ArgList)403   __mingw_ovr int __cdecl _vfprintf_l(FILE *_File, const char *_Format, _locale_t _Locale, va_list _ArgList)
404   {
405     return __stdio_common_vfprintf(0, _File, _Format, _Locale, _ArgList);
406   }
_vprintf_l(const char * _Format,_locale_t _Locale,va_list _ArgList)407   __mingw_ovr int __cdecl _vprintf_l(const char *_Format, _locale_t _Locale, va_list _ArgList)
408   {
409     return _vfprintf_l(stdout, _Format, _Locale, _ArgList);
410   }
_fprintf_l(FILE * _File,const char * _Format,_locale_t _Locale,...)411   __mingw_ovr int __cdecl _fprintf_l(FILE *_File, const char *_Format, _locale_t _Locale, ...)
412   {
413     __builtin_va_list _ArgList;
414     int _Ret;
415     __builtin_va_start(_ArgList, _Locale);
416     _Ret = _vfprintf_l(_File, _Format, _Locale, _ArgList);
417     __builtin_va_end(_ArgList);
418     return _Ret;
419   }
_printf_l(const char * _Format,_locale_t _Locale,...)420   __mingw_ovr int __cdecl _printf_l(const char *_Format, _locale_t _Locale, ...)
421   {
422     __builtin_va_list _ArgList;
423     int _Ret;
424     __builtin_va_start(_ArgList, _Locale);
425     _Ret = _vfprintf_l(stdout, _Format, _Locale, _ArgList);
426     __builtin_va_end(_ArgList);
427     return _Ret;
428   }
429 
_vsnprintf_l(char * _DstBuf,size_t _MaxCount,const char * _Format,_locale_t _Locale,va_list _ArgList)430   __mingw_ovr int __cdecl _vsnprintf_l(char *_DstBuf, size_t _MaxCount, const char *_Format, _locale_t _Locale, va_list _ArgList)
431   {
432     return __stdio_common_vsprintf(UCRTBASE_PRINTF_LEGACY_VSPRINTF_NULL_TERMINATION, _DstBuf, _MaxCount, _Format, _Locale, _ArgList);
433   }
_snprintf_l(char * _DstBuf,size_t _MaxCount,const char * _Format,_locale_t _Locale,...)434   __mingw_ovr int __cdecl _snprintf_l(char *_DstBuf, size_t _MaxCount, const char *_Format, _locale_t _Locale, ...)
435   {
436     __builtin_va_list _ArgList;
437     int _Ret;
438     __builtin_va_start(_ArgList, _Locale);
439     _Ret = _vsnprintf_l(_DstBuf, _MaxCount, _Format, _Locale, _ArgList);
440     __builtin_va_end(_ArgList);
441     return _Ret;
442   }
_vsprintf_l(char * _DstBuf,const char * _Format,_locale_t _Locale,va_list _ArgList)443   __mingw_ovr int __cdecl _vsprintf_l(char *_DstBuf, const char *_Format, _locale_t _Locale, va_list _ArgList)
444   {
445     return _vsnprintf_l(_DstBuf, (size_t)-1, _Format, _Locale, _ArgList);
446   }
_sprintf_l(char * _DstBuf,const char * _Format,_locale_t _Locale,...)447   __mingw_ovr int __cdecl _sprintf_l(char *_DstBuf, const char *_Format, _locale_t _Locale, ...)
448   {
449     __builtin_va_list _ArgList;
450     int _Ret;
451     __builtin_va_start(_ArgList, _Locale);
452     _Ret = _vsprintf_l(_DstBuf, _Format, _Locale, _ArgList);
453     __builtin_va_end(_ArgList);
454     return _Ret;
455   }
456 
_vscprintf_l(const char * _Format,_locale_t _Locale,va_list _ArgList)457   __mingw_ovr int __cdecl _vscprintf_l(const char *_Format, _locale_t _Locale, va_list _ArgList)
458   {
459     return __stdio_common_vsprintf(UCRTBASE_PRINTF_STANDARD_SNPRINTF_BEHAVIOUR, NULL, 0, _Format, _Locale, _ArgList);
460   }
_scprintf_l(const char * _Format,_locale_t _Locale,...)461   __mingw_ovr int __cdecl _scprintf_l(const char *_Format, _locale_t _Locale, ...)
462   {
463     __builtin_va_list _ArgList;
464     int _Ret;
465     __builtin_va_start(_ArgList, _Locale);
466     _Ret = _vscprintf_l(_Format, _Locale, _ArgList);
467     __builtin_va_end(_ArgList);
468     return _Ret;
469   }
470 #else /* __MSVCRT_VERSION__ >= 0x1400 */
471   int __cdecl fprintf_s(FILE *_File,const char *_Format,...);
472   _CRTIMP int __cdecl _fscanf_s_l(FILE *_File,const char *_Format,_locale_t _Locale,...);
473   int __cdecl printf_s(const char *_Format,...);
474   _CRTIMP int __cdecl _scanf_l(const char *_Format,_locale_t _Locale,...);
475   _CRTIMP int __cdecl _scanf_s_l(const char *_Format,_locale_t _Locale,...);
476   _CRTIMP int __cdecl _snprintf_c(char *_DstBuf,size_t _MaxCount,const char *_Format,...);
477   _CRTIMP int __cdecl _vsnprintf_c(char *_DstBuf,size_t _MaxCount,const char *_Format,va_list _ArgList);
478 
479   _CRTIMP int __cdecl _fscanf_l(FILE *_File,const char *_Format,_locale_t _Locale,...);
480   _CRTIMP int __cdecl _sscanf_l(const char *_Src,const char *_Format,_locale_t _Locale,...);
481   _CRTIMP int __cdecl _sscanf_s_l(const char *_Src,const char *_Format,_locale_t _Locale,...);
482   _CRTIMP int __cdecl sscanf_s(const char *_Src,const char *_Format,...);
483   _CRTIMP int __cdecl _snscanf_s(const char *_Src,size_t _MaxCount,const char *_Format,...);
484   _CRTIMP int __cdecl _snscanf_l(const char *_Src,size_t _MaxCount,const char *_Format,_locale_t _Locale,...);
485   _CRTIMP int __cdecl _snscanf_s_l(const char *_Src,size_t _MaxCount,const char *_Format,_locale_t _Locale,...);
486   int __cdecl vfprintf_s(FILE *_File,const char *_Format,va_list _ArgList);
487   int __cdecl vprintf_s(const char *_Format,va_list _ArgList);
488 
489   int __cdecl vsnprintf_s(char *_DstBuf,size_t _DstSize,size_t _MaxCount,const char *_Format,va_list _ArgList);
490 
491   _CRTIMP int __cdecl _vsnprintf_s(char *_DstBuf,size_t _DstSize,size_t _MaxCount,const char *_Format,va_list _ArgList);
492 
493   _SECIMP int __cdecl vsprintf_s(char *_DstBuf,size_t _Size,const char *_Format,va_list _ArgList);
494 
495   _SECIMP int __cdecl sprintf_s(char *_DstBuf,size_t _DstSize,const char *_Format,...);
496 
497   _CRTIMP int __cdecl _snprintf_s(char *_DstBuf,size_t _DstSize,size_t _MaxCount,const char *_Format,...);
498 
499   _CRTIMP int __cdecl _fprintf_p(FILE *_File,const char *_Format,...);
500   _CRTIMP int __cdecl _printf_p(const char *_Format,...);
501   _CRTIMP int __cdecl _sprintf_p(char *_Dst,size_t _MaxCount,const char *_Format,...);
502   _CRTIMP int __cdecl _vfprintf_p(FILE *_File,const char *_Format,va_list _ArgList);
503   _CRTIMP int __cdecl _vprintf_p(const char *_Format,va_list _ArgList);
504   _CRTIMP int __cdecl _vsprintf_p(char *_Dst,size_t _MaxCount,const char *_Format,va_list _ArgList);
505   _CRTIMP int __cdecl _scprintf_p(const char *_Format,...);
506   _SECIMP int __cdecl _vscprintf_p(const char *_Format,va_list _ArgList);
507   _CRTIMP int __cdecl _printf_l(const char *_Format,_locale_t _Locale,...);
508   _CRTIMP int __cdecl _printf_p_l(const char *_Format,_locale_t _Locale,...);
509   _CRTIMP int __cdecl _vprintf_l(const char *_Format,_locale_t _Locale,va_list _ArgList);
510   _CRTIMP int __cdecl _vprintf_p_l(const char *_Format,_locale_t _Locale,va_list _ArgList);
511   _CRTIMP int __cdecl _fprintf_l(FILE *_File,const char *_Format,_locale_t _Locale,...);
512   _CRTIMP int __cdecl _fprintf_p_l(FILE *_File,const char *_Format,_locale_t _Locale,...);
513   _CRTIMP int __cdecl _vfprintf_l(FILE *_File,const char *_Format,_locale_t _Locale,va_list _ArgList);
514   _CRTIMP int __cdecl _vfprintf_p_l(FILE *_File,const char *_Format,_locale_t _Locale,va_list _ArgList);
515   _CRTIMP int __cdecl _sprintf_l(char *_DstBuf,const char *_Format,_locale_t _Locale,...);
516   _CRTIMP int __cdecl _sprintf_p_l(char *_DstBuf,size_t _MaxCount,const char *_Format,_locale_t _Locale,...);
517   _CRTIMP int __cdecl _vsprintf_l(char *_DstBuf,const char *_Format,_locale_t,va_list _ArgList);
518   _CRTIMP int __cdecl _vsprintf_p_l(char *_DstBuf,size_t _MaxCount,const char *_Format,_locale_t _Locale,va_list _ArgList);
519   _CRTIMP int __cdecl _scprintf_l(const char *_Format,_locale_t _Locale,...);
520   _CRTIMP int __cdecl _scprintf_p_l(const char *_Format,_locale_t _Locale,...);
521   _CRTIMP int __cdecl _vscprintf_l(const char *_Format,_locale_t _Locale,va_list _ArgList);
522   _CRTIMP int __cdecl _vscprintf_p_l(const char *_Format,_locale_t _Locale,va_list _ArgList);
523   _CRTIMP int __cdecl _printf_s_l(const char *_Format,_locale_t _Locale,...);
524   _CRTIMP int __cdecl _vprintf_s_l(const char *_Format,_locale_t _Locale,va_list _ArgList);
525   _CRTIMP int __cdecl _fprintf_s_l(FILE *_File,const char *_Format,_locale_t _Locale,...);
526   _CRTIMP int __cdecl _vfprintf_s_l(FILE *_File,const char *_Format,_locale_t _Locale,va_list _ArgList);
527   _CRTIMP int __cdecl _sprintf_s_l(char *_DstBuf,size_t _DstSize,const char *_Format,_locale_t _Locale,...);
528   _CRTIMP int __cdecl _vsprintf_s_l(char *_DstBuf,size_t _DstSize,const char *_Format,_locale_t _Locale,va_list _ArgList);
529   _CRTIMP int __cdecl _snprintf_s_l(char *_DstBuf,size_t _DstSize,size_t _MaxCount,const char *_Format,_locale_t _Locale,...);
530   _CRTIMP int __cdecl _vsnprintf_s_l(char *_DstBuf,size_t _DstSize,size_t _MaxCount,const char *_Format,_locale_t _Locale,va_list _ArgList);
531   _CRTIMP int __cdecl _snprintf_l(char *_DstBuf,size_t _MaxCount,const char *_Format,_locale_t _Locale,...);
532   _CRTIMP int __cdecl _snprintf_c_l(char *_DstBuf,size_t _MaxCount,const char *_Format,_locale_t _Locale,...);
533   _CRTIMP int __cdecl _vsnprintf_l(char *_DstBuf,size_t _MaxCount,const char *_Format,_locale_t _Locale,va_list _ArgList);
534   _CRTIMP int __cdecl _vsnprintf_c_l(char *_DstBuf,size_t _MaxCount,const char *,_locale_t _Locale,va_list _ArgList);
535 #endif /* __MSVCRT_VERSION__ < 0x1400 */
536 
537   __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_3(int,vsnprintf_s,char,_DstBuf,size_t,_MaxCount,const char*,_Format,va_list,_ArgList)
538   __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_3(int,_vsnprintf_s,char,_DstBuf,size_t,_MaxCount,const char*,_Format,va_list,_ArgList)
539   __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_2(int, vsprintf_s, char, _DstBuf, const char*, _Format, va_list, _ArgList)
540   __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_1_ARGLIST(int,sprintf_s,vsprintf_s,char,_DstBuf,const char*,_Format)
541   __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_2_ARGLIST(int,_snprintf_s,_vsnprintf_s,char,_DstBuf,size_t,_MaxCount,const char*,_Format)
542 
543   _CRTIMP errno_t __cdecl fopen_s(FILE **_File,const char *_Filename,const char *_Mode);
544   _CRTIMP errno_t __cdecl freopen_s(FILE** _File, const char *_Filename, const char *_Mode, FILE *_Stream);
545 
546   _CRTIMP char* __cdecl gets_s(char*,rsize_t);
547   __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_0(char*,get_s,char,_DstBuf)
548 
549   _CRTIMP errno_t __cdecl tmpnam_s(char*,rsize_t);
550   __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_0(errno_t,tmpnam_s,char,_DstBuf)
551 
552 
553 #ifndef _WSTDIO_S_DEFINED
554 #define _WSTDIO_S_DEFINED
555   _CRTIMP wchar_t *__cdecl _getws_s(wchar_t *_Str,size_t _SizeInWords);
556   __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_0(wchar_t*,_getws_s,wchar_t,_DstBuf)
557 
558 #if __MSVCRT_VERSION__ >= 0x1400
559   int __cdecl __stdio_common_vswprintf_s(unsigned __int64 _Options, wchar_t *_Str, size_t _Len, const wchar_t *_Format, _locale_t _Locale, va_list _ArgList);
560   int __cdecl __stdio_common_vsnwprintf_s(unsigned __int64 _Options, wchar_t *_Str, size_t _Len, size_t _MaxCount, const wchar_t *_Format, _locale_t _Locale, va_list _ArgList);
561   int __cdecl __stdio_common_vfwprintf_s(unsigned __int64 _Options, FILE *_File, const wchar_t *_Format, _locale_t _Locale, va_list _ArgList);
562 
_vfwscanf_s_l(FILE * _File,const wchar_t * _Format,_locale_t _Locale,va_list _ArgList)563   __mingw_ovr int __cdecl _vfwscanf_s_l(FILE *_File, const wchar_t *_Format, _locale_t _Locale, va_list _ArgList)
564   {
565     return __stdio_common_vfwscanf(UCRTBASE_SCANF_DEFAULT_WIDE | UCRTBASE_SCANF_SECURECRT, _File, _Format, _Locale, _ArgList);
566   }
_fwscanf_s_l(FILE * _File,const wchar_t * _Format,_locale_t _Locale,...)567   __mingw_ovr int __cdecl _fwscanf_s_l(FILE *_File, const wchar_t *_Format, _locale_t _Locale, ...)
568   {
569     __builtin_va_list _ArgList;
570     int _Ret;
571     __builtin_va_start(_ArgList, _Locale);
572     _Ret = _vfwscanf_s_l(_File, _Format, _Locale, _ArgList);
573     __builtin_va_end(_ArgList);
574     return _Ret;
575   }
_wscanf_s_l(const wchar_t * _Format,_locale_t _Locale,...)576   __mingw_ovr int __cdecl _wscanf_s_l(const wchar_t *_Format, _locale_t _Locale, ...)
577   {
578     __builtin_va_list _ArgList;
579     int _Ret;
580     __builtin_va_start(_ArgList, _Locale);
581     _Ret = _vfwscanf_s_l(stdin, _Format, _Locale, _ArgList);
582     __builtin_va_end(_ArgList);
583     return _Ret;
584   }
585 
_vswscanf_s_l(const wchar_t * _Src,const wchar_t * _Format,_locale_t _Locale,va_list _ArgList)586   __mingw_ovr int __cdecl _vswscanf_s_l(const wchar_t *_Src, const wchar_t *_Format, _locale_t _Locale, va_list _ArgList)
587   {
588     return __stdio_common_vswscanf(UCRTBASE_SCANF_DEFAULT_WIDE | UCRTBASE_SCANF_SECURECRT, _Src, (size_t)-1, _Format, _Locale, _ArgList);
589   }
_swscanf_s_l(const wchar_t * _Src,const wchar_t * _Format,_locale_t _Locale,...)590   __mingw_ovr int __cdecl _swscanf_s_l(const wchar_t *_Src, const wchar_t *_Format, _locale_t _Locale, ...)
591   {
592     __builtin_va_list _ArgList;
593     int _Ret;
594     __builtin_va_start(_ArgList, _Locale);
595     _Ret = _vswscanf_s_l(_Src, _Format, _Locale, _ArgList);
596     __builtin_va_end(_ArgList);
597     return _Ret;
598   }
swscanf_s(const wchar_t * _Src,const wchar_t * _Format,...)599   __mingw_ovr int __cdecl swscanf_s(const wchar_t *_Src, const wchar_t *_Format, ...)
600   {
601     __builtin_va_list _ArgList;
602     int _Ret;
603     __builtin_va_start(_ArgList, _Format);
604     _Ret = _vswscanf_s_l(_Src, _Format, NULL, _ArgList);
605     __builtin_va_end(_ArgList);
606     return _Ret;
607   }
608 
_vsnwscanf_s_l(const wchar_t * _Src,size_t _MaxCount,const wchar_t * _Format,_locale_t _Locale,va_list _ArgList)609   __mingw_ovr int __cdecl _vsnwscanf_s_l(const wchar_t *_Src, size_t _MaxCount, const wchar_t *_Format, _locale_t _Locale, va_list _ArgList)
610   {
611     return __stdio_common_vswscanf(UCRTBASE_SCANF_DEFAULT_WIDE | UCRTBASE_SCANF_SECURECRT, _Src, _MaxCount, _Format, _Locale, _ArgList);
612   }
_snwscanf_s_l(const wchar_t * _Src,size_t _MaxCount,const wchar_t * _Format,_locale_t _Locale,...)613   __mingw_ovr int __cdecl _snwscanf_s_l(const wchar_t *_Src, size_t _MaxCount, const wchar_t *_Format, _locale_t _Locale, ...)
614   {
615     __builtin_va_list _ArgList;
616     int _Ret;
617     __builtin_va_start(_ArgList, _Locale);
618     _Ret = _vsnwscanf_s_l(_Src, _MaxCount, _Format, _Locale, _ArgList);
619     __builtin_va_end(_ArgList);
620     return _Ret;
621   }
_snwscanf_s(const wchar_t * _Src,size_t _MaxCount,const wchar_t * _Format,...)622   __mingw_ovr int __cdecl _snwscanf_s(const wchar_t *_Src, size_t _MaxCount, const wchar_t *_Format, ...)
623   {
624     __builtin_va_list _ArgList;
625     int _Ret;
626     __builtin_va_start(_ArgList, _Format);
627     _Ret = _vsnwscanf_s_l(_Src, _MaxCount, _Format, NULL, _ArgList);
628     __builtin_va_end(_ArgList);
629     return _Ret;
630   }
631 
_vfwprintf_s_l(FILE * _File,const wchar_t * _Format,_locale_t _Locale,va_list _ArgList)632   __mingw_ovr int __cdecl _vfwprintf_s_l(FILE *_File, const wchar_t *_Format, _locale_t _Locale, va_list _ArgList)
633   {
634     return __stdio_common_vfwprintf_s(UCRTBASE_PRINTF_DEFAULT_WIDE, _File, _Format, _Locale, _ArgList);
635   }
_vwprintf_s_l(const wchar_t * _Format,_locale_t _Locale,va_list _ArgList)636   __mingw_ovr int __cdecl _vwprintf_s_l(const wchar_t *_Format, _locale_t _Locale, va_list _ArgList)
637   {
638     return _vfwprintf_s_l(stdout, _Format, _Locale, _ArgList);
639   }
vfwprintf_s(FILE * _File,const wchar_t * _Format,va_list _ArgList)640   __mingw_ovr int __cdecl vfwprintf_s(FILE *_File, const wchar_t *_Format, va_list _ArgList)
641   {
642     return _vfwprintf_s_l(_File, _Format, NULL, _ArgList);
643   }
vwprintf_s(const wchar_t * _Format,va_list _ArgList)644   __mingw_ovr int __cdecl vwprintf_s(const wchar_t *_Format, va_list _ArgList)
645   {
646     return _vfwprintf_s_l(stdout, _Format, NULL, _ArgList);
647   }
_fwprintf_s_l(FILE * _File,const wchar_t * _Format,_locale_t _Locale,...)648   __mingw_ovr int __cdecl _fwprintf_s_l(FILE *_File, const wchar_t *_Format, _locale_t _Locale, ...)
649   {
650     __builtin_va_list _ArgList;
651     int _Ret;
652     __builtin_va_start(_ArgList, _Locale);
653     _Ret = _vfwprintf_s_l(_File, _Format, _Locale, _ArgList);
654     __builtin_va_end(_ArgList);
655     return _Ret;
656   }
_wprintf_s_l(const wchar_t * _Format,_locale_t _Locale,...)657   __mingw_ovr int __cdecl _wprintf_s_l(const wchar_t *_Format, _locale_t _Locale, ...)
658   {
659     __builtin_va_list _ArgList;
660     int _Ret;
661     __builtin_va_start(_ArgList, _Locale);
662     _Ret = _vfwprintf_s_l(stdout, _Format, _Locale, _ArgList);
663     __builtin_va_end(_ArgList);
664     return _Ret;
665   }
fwprintf_s(FILE * _File,const wchar_t * _Format,...)666   __mingw_ovr int __cdecl fwprintf_s(FILE *_File, const wchar_t *_Format, ...)
667   {
668     __builtin_va_list _ArgList;
669     int _Ret;
670     __builtin_va_start(_ArgList, _Format);
671     _Ret = _vfwprintf_s_l(_File, _Format, NULL, _ArgList);
672     __builtin_va_end(_ArgList);
673     return _Ret;
674   }
wprintf_s(const wchar_t * _Format,...)675   __mingw_ovr int __cdecl wprintf_s(const wchar_t *_Format, ...)
676   {
677     __builtin_va_list _ArgList;
678     int _Ret;
679     __builtin_va_start(_ArgList, _Format);
680     _Ret = _vfwprintf_s_l(stdout, _Format, NULL, _ArgList);
681     __builtin_va_end(_ArgList);
682     return _Ret;
683   }
684 
_vswprintf_s_l(wchar_t * _DstBuf,size_t _DstSize,const wchar_t * _Format,_locale_t _Locale,va_list _ArgList)685   __mingw_ovr int __cdecl _vswprintf_s_l(wchar_t *_DstBuf, size_t _DstSize, const wchar_t *_Format, _locale_t _Locale, va_list _ArgList)
686   {
687     return __stdio_common_vswprintf_s(UCRTBASE_PRINTF_DEFAULT_WIDE, _DstBuf, _DstSize, _Format, _Locale, _ArgList);
688   }
vswprintf_s(wchar_t * _DstBuf,size_t _DstSize,const wchar_t * _Format,va_list _ArgList)689   __mingw_ovr int __cdecl vswprintf_s(wchar_t *_DstBuf, size_t _DstSize, const wchar_t *_Format, va_list _ArgList)
690   {
691     return _vswprintf_s_l(_DstBuf, _DstSize, _Format, NULL, _ArgList);
692   }
_swprintf_s_l(wchar_t * _DstBuf,size_t _DstSize,const wchar_t * _Format,_locale_t _Locale,...)693   __mingw_ovr int __cdecl _swprintf_s_l(wchar_t *_DstBuf, size_t _DstSize, const wchar_t *_Format, _locale_t _Locale, ...)
694   {
695     __builtin_va_list _ArgList;
696     int _Ret;
697     __builtin_va_start(_ArgList, _Locale);
698     _Ret = _vswprintf_s_l(_DstBuf, _DstSize, _Format, _Locale, _ArgList);
699     __builtin_va_end(_ArgList);
700     return _Ret;
701   }
swprintf_s(wchar_t * _DstBuf,size_t _DstSize,const wchar_t * _Format,...)702   __mingw_ovr int __cdecl swprintf_s(wchar_t *_DstBuf, size_t _DstSize, const wchar_t *_Format, ...)
703   {
704     __builtin_va_list _ArgList;
705     int _Ret;
706     __builtin_va_start(_ArgList, _Format);
707     _Ret = _vswprintf_s_l(_DstBuf, _DstSize, _Format, NULL, _ArgList);
708     __builtin_va_end(_ArgList);
709     return _Ret;
710   }
711 
_vsnwprintf_s_l(wchar_t * _DstBuf,size_t _DstSize,size_t _MaxCount,const wchar_t * _Format,_locale_t _Locale,va_list _ArgList)712   __mingw_ovr int __cdecl _vsnwprintf_s_l(wchar_t *_DstBuf, size_t _DstSize, size_t _MaxCount, const wchar_t *_Format, _locale_t _Locale, va_list _ArgList)
713   {
714     return __stdio_common_vsnwprintf_s(UCRTBASE_PRINTF_DEFAULT_WIDE, _DstBuf, _DstSize, _MaxCount, _Format, _Locale, _ArgList);
715   }
_vsnwprintf_s(wchar_t * _DstBuf,size_t _DstSize,size_t _MaxCount,const wchar_t * _Format,va_list _ArgList)716   __mingw_ovr int __cdecl _vsnwprintf_s(wchar_t *_DstBuf, size_t _DstSize, size_t _MaxCount, const wchar_t *_Format, va_list _ArgList)
717   {
718     return _vsnwprintf_s_l(_DstBuf, _DstSize, _MaxCount, _Format, NULL, _ArgList);
719   }
_snwprintf_s_l(wchar_t * _DstBuf,size_t _DstSize,size_t _MaxCount,const wchar_t * _Format,_locale_t _Locale,...)720   __mingw_ovr int __cdecl _snwprintf_s_l(wchar_t *_DstBuf, size_t _DstSize, size_t _MaxCount, const wchar_t *_Format, _locale_t _Locale, ...)
721   {
722     __builtin_va_list _ArgList;
723     int _Ret;
724     __builtin_va_start(_ArgList, _Locale);
725     _Ret = _vsnwprintf_s_l(_DstBuf, _DstSize, _MaxCount, _Format, _Locale, _ArgList);
726     __builtin_va_end(_ArgList);
727     return _Ret;
728   }
_snwprintf_s(wchar_t * _DstBuf,size_t _DstSize,size_t _MaxCount,const wchar_t * _Format,...)729   __mingw_ovr int __cdecl _snwprintf_s(wchar_t *_DstBuf, size_t _DstSize, size_t _MaxCount, const wchar_t *_Format, ...)
730   {
731     __builtin_va_list _ArgList;
732     int _Ret;
733     __builtin_va_start(_ArgList, _Format);
734     _Ret = _vsnwprintf_s_l(_DstBuf, _DstSize, _MaxCount, _Format, NULL, _ArgList);
735     __builtin_va_end(_ArgList);
736     return _Ret;
737   }
738 #else /* __MSVCRT_VERSION__ >= 0x1400 */
739   int __cdecl fwprintf_s(FILE *_File,const wchar_t *_Format,...);
740   int __cdecl wprintf_s(const wchar_t *_Format,...);
741   int __cdecl vfwprintf_s(FILE *_File,const wchar_t *_Format,va_list _ArgList);
742   int __cdecl vwprintf_s(const wchar_t *_Format,va_list _ArgList);
743 
744   int __cdecl vswprintf_s(wchar_t *_Dst,size_t _SizeInWords,const wchar_t *_Format,va_list _ArgList);
745 
746   int __cdecl swprintf_s(wchar_t *_Dst,size_t _SizeInWords,const wchar_t *_Format,...);
747 
748   _CRTIMP int __cdecl _vsnwprintf_s(wchar_t *_DstBuf,size_t _DstSizeInWords,size_t _MaxCount,const wchar_t *_Format,va_list _ArgList);
749 
750   _CRTIMP int __cdecl _snwprintf_s(wchar_t *_DstBuf,size_t _DstSizeInWords,size_t _MaxCount,const wchar_t *_Format,...);
751 
752 
753   _CRTIMP int __cdecl _wprintf_s_l(const wchar_t *_Format,_locale_t _Locale,...);
754   _CRTIMP int __cdecl _vwprintf_s_l(const wchar_t *_Format,_locale_t _Locale,va_list _ArgList);
755   _CRTIMP int __cdecl _fwprintf_s_l(FILE *_File,const wchar_t *_Format,_locale_t _Locale,...);
756   _CRTIMP int __cdecl _vfwprintf_s_l(FILE *_File,const wchar_t *_Format,_locale_t _Locale,va_list _ArgList);
757   _CRTIMP int __cdecl _swprintf_s_l(wchar_t *_DstBuf,size_t _DstSize,const wchar_t *_Format,_locale_t _Locale,...);
758   _CRTIMP int __cdecl _vswprintf_s_l(wchar_t *_DstBuf,size_t _DstSize,const wchar_t *_Format,_locale_t _Locale,va_list _ArgList);
759   _CRTIMP int __cdecl _snwprintf_s_l(wchar_t *_DstBuf,size_t _DstSize,size_t _MaxCount,const wchar_t *_Format,_locale_t _Locale,...);
760   _CRTIMP int __cdecl _vsnwprintf_s_l(wchar_t *_DstBuf,size_t _DstSize,size_t _MaxCount,const wchar_t *_Format,_locale_t _Locale,va_list _ArgList);
761   _CRTIMP int __cdecl _fwscanf_s_l(FILE *_File,const wchar_t *_Format,_locale_t _Locale,...);
762   _CRTIMP int __cdecl _swscanf_s_l(const wchar_t *_Src,const wchar_t *_Format,_locale_t _Locale,...);
763   _CRTIMP int __cdecl swscanf_s(const wchar_t *_Src,const wchar_t *_Format,...);
764   _CRTIMP int __cdecl _snwscanf_s(const wchar_t *_Src,size_t _MaxCount,const wchar_t *_Format,...);
765   _CRTIMP int __cdecl _snwscanf_s_l(const wchar_t *_Src,size_t _MaxCount,const wchar_t *_Format,_locale_t _Locale,...);
766   _CRTIMP int __cdecl _wscanf_s_l(const wchar_t *_Format,_locale_t _Locale,...);
767 #endif /* __MSVCRT_VERSION__ < 0x1400 */
768 
769   __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_2(int, vswprintf_s, wchar_t, _Dst, const wchar_t*, _Format, va_list, _ArgList)
770   __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_1_ARGLIST(int,swprintf_s,vswprintf_s,wchar_t,_Dst,const wchar_t*,_Format)
771   __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_3(int,_vsnwprintf_s,wchar_t,_DstBuf,size_t,_MaxCount,const wchar_t*,_Format,va_list,_ArgList)
772   __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_2_ARGLIST(int,_snwprintf_s,_vsnwprintf_s,wchar_t,_DstBuf,size_t,_MaxCount,const wchar_t*,_Format)
773 
774   _CRTIMP errno_t __cdecl _wfopen_s(FILE **_File,const wchar_t *_Filename,const wchar_t *_Mode);
775   _CRTIMP errno_t __cdecl _wfreopen_s(FILE **_File,const wchar_t *_Filename,const wchar_t *_Mode,FILE *_OldFile);
776 
777   _CRTIMP errno_t __cdecl _wtmpnam_s(wchar_t *_DstBuf,size_t _SizeInWords);
778   __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_0(errno_t,_wtmpnam_s,wchar_t,_DstBuf)
779 
780 #if __MSVCRT_VERSION__ < 0x1400
781   _CRTIMP int __cdecl _fwprintf_p(FILE *_File,const wchar_t *_Format,...);
782   _CRTIMP int __cdecl _wprintf_p(const wchar_t *_Format,...);
783   _CRTIMP int __cdecl _vfwprintf_p(FILE *_File,const wchar_t *_Format,va_list _ArgList);
784   _CRTIMP int __cdecl _vwprintf_p(const wchar_t *_Format,va_list _ArgList);
785   _CRTIMP int __cdecl _swprintf_p(wchar_t *_DstBuf,size_t _MaxCount,const wchar_t *_Format,...);
786   _SECIMP int __cdecl _vswprintf_p(wchar_t *_DstBuf,size_t _MaxCount,const wchar_t *_Format,va_list _ArgList);
787   _CRTIMP int __cdecl _scwprintf_p(const wchar_t *_Format,...);
788   _SECIMP int __cdecl _vscwprintf_p(const wchar_t *_Format,va_list _ArgList);
789   _CRTIMP int __cdecl _wprintf_l(const wchar_t *_Format,_locale_t _Locale,...);
790   _CRTIMP int __cdecl _wprintf_p_l(const wchar_t *_Format,_locale_t _Locale,...);
791   _CRTIMP int __cdecl _vwprintf_l(const wchar_t *_Format,_locale_t _Locale,va_list _ArgList);
792   _CRTIMP int __cdecl _vwprintf_p_l(const wchar_t *_Format,_locale_t _Locale,va_list _ArgList);
793   _CRTIMP int __cdecl _fwprintf_l(FILE *_File,const wchar_t *_Format,_locale_t _Locale,...);
794   _CRTIMP int __cdecl _fwprintf_p_l(FILE *_File,const wchar_t *_Format,_locale_t _Locale,...);
795   _CRTIMP int __cdecl _vfwprintf_l(FILE *_File,const wchar_t *_Format,_locale_t _Locale,va_list _ArgList);
796   _CRTIMP int __cdecl _vfwprintf_p_l(FILE *_File,const wchar_t *_Format,_locale_t _Locale,va_list _ArgList);
797   _CRTIMP int __cdecl _swprintf_c_l(wchar_t *_DstBuf,size_t _MaxCount,const wchar_t *_Format,_locale_t _Locale,...);
798   _CRTIMP int __cdecl _swprintf_p_l(wchar_t *_DstBuf,size_t _MaxCount,const wchar_t *_Format,_locale_t _Locale,...);
799   _CRTIMP int __cdecl _vswprintf_c_l(wchar_t *_DstBuf,size_t _MaxCount,const wchar_t *_Format,_locale_t _Locale,va_list _ArgList);
800   _CRTIMP int __cdecl _vswprintf_p_l(wchar_t *_DstBuf,size_t _MaxCount,const wchar_t *_Format,_locale_t _Locale,va_list _ArgList);
801   _CRTIMP int __cdecl _scwprintf_l(const wchar_t *_Format,_locale_t _Locale,...);
802   _CRTIMP int __cdecl _scwprintf_p_l(const wchar_t *_Format,_locale_t _Locale,...);
803   _CRTIMP int __cdecl _vscwprintf_p_l(const wchar_t *_Format,_locale_t _Locale,va_list _ArgList);
804   _CRTIMP int __cdecl _snwprintf_l(wchar_t *_DstBuf,size_t _MaxCount,const wchar_t *_Format,_locale_t _Locale,...);
805   _CRTIMP int __cdecl _vsnwprintf_l(wchar_t *_DstBuf,size_t _MaxCount,const wchar_t *_Format,_locale_t _Locale,va_list _ArgList);
806   _CRTIMP int __cdecl __swprintf_l(wchar_t *_Dest,const wchar_t *_Format,_locale_t _Plocinfo,...);
807   _CRTIMP int __cdecl __vswprintf_l(wchar_t *_Dest,const wchar_t *_Format,_locale_t _Plocinfo,va_list _Args);
808   _CRTIMP int __cdecl _vscwprintf_l(const wchar_t *_Format,_locale_t _Locale,va_list _ArgList);
809   _CRTIMP int __cdecl _fwscanf_l(FILE *_File,const wchar_t *_Format,_locale_t _Locale,...);
810   _CRTIMP int __cdecl _swscanf_l(const wchar_t *_Src,const wchar_t *_Format,_locale_t _Locale,...);
811   _CRTIMP int __cdecl _snwscanf_l(const wchar_t *_Src,size_t _MaxCount,const wchar_t *_Format,_locale_t _Locale,...);
812   _CRTIMP int __cdecl _wscanf_l(const wchar_t *_Format,_locale_t _Locale,...);
813 #endif /* __MSVCRT_VERSION__ < 0x1400 */
814 
815 #endif /* _WSTDIO_S_DEFINED */
816 #endif /* _STDIO_S_DEFINED */
817 
818   _CRTIMP size_t __cdecl _fread_nolock_s(void *_DstBuf,size_t _DstSize,size_t _ElementSize,size_t _Count,FILE *_File);
819 
820 #ifdef __cplusplus
821 }
822 #endif
823 #endif
824 #endif
825