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