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