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