stdio_s.h 39 KB

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