Something went wrong. Try again.
Reactos
Something went wrong. Try again.
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363//// stdlib.h//// Copyright (c) Microsoft Corporation. All rights reserved.//// The C Standard Library <stdlib.h> header.//#pragma once#ifndef _INC_STDLIB // include guard for 3rd party interop#define _INC_STDLIB
#include <corecrt.h>#include <corecrt_malloc.h>#include <corecrt_search.h>#include <corecrt_wstdlib.h>#include <limits.h>
#pragma warning(push)#pragma warning(disable: _UCRT_DISABLED_WARNINGS)_UCRT_DISABLE_CLANG_WARNINGS
_CRT_BEGIN_C_HEADER
#ifndef _countof #define _countof __crt_countof#endif
// Minimum and maximum macros#define __max(a,b) (((a) > (b)) ? (a) : (b))#define __min(a,b) (((a) < (b)) ? (a) : (b))
_ACRTIMP void __cdecl _swab( _Inout_updates_(_SizeInBytes) _Post_readable_size_(_SizeInBytes) char* _Buf1, _Inout_updates_(_SizeInBytes) _Post_readable_size_(_SizeInBytes) char* _Buf2, _In_ int _SizeInBytes );
//-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+//// Exit and Abort////-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+// Argument values for exit()#define EXIT_SUCCESS 0#define EXIT_FAILURE 1
#if _CRT_FUNCTIONS_REQUIRED _ACRTIMP __declspec(noreturn) void __cdecl exit(_In_ int _Code); _ACRTIMP __declspec(noreturn) void __cdecl _exit(_In_ int _Code); _ACRTIMP __declspec(noreturn) void __cdecl _Exit(_In_ int _Code); _ACRTIMP __declspec(noreturn) void __cdecl quick_exit(_In_ int _Code); _ACRTIMP __declspec(noreturn) void __cdecl abort(void);#endif // _CRT_FUNCTIONS_REQUIRED
// Argument values for _set_abort_behavior().#define _WRITE_ABORT_MSG 0x1 // debug only, has no effect in release#define _CALL_REPORTFAULT 0x2
_ACRTIMP unsigned int __cdecl _set_abort_behavior( _In_ unsigned int _Flags, _In_ unsigned int _Mask );
#ifndef _CRT_ONEXIT_T_DEFINED #define _CRT_ONEXIT_T_DEFINED
typedef int (__CRTDECL* _onexit_t)(void); #ifdef _M_CEE typedef int (__clrcall* _onexit_m_t)(void); #endif#endif
#if defined(_CRT_INTERNAL_NONSTDC_NAMES) && _CRT_INTERNAL_NONSTDC_NAMES // Non-ANSI name for compatibility #define onexit_t _onexit_t#endif
#ifdef _M_CEE #pragma warning (push) #pragma warning (disable: 4985) // Attributes not present on previous declaration
_Check_return_ int __clrcall _atexit_m_appdomain(_In_opt_ void (__clrcall* _Function)(void));
_onexit_m_t __clrcall _onexit_m_appdomain(_onexit_m_t _Function);
#ifdef _M_CEE_MIXED #ifdef __cplusplus [System::Security::SecurityCritical] #endif _Check_return_ int __clrcall _atexit_m(_In_opt_ void (__clrcall* _Function)(void));
_onexit_m_t __clrcall _onexit_m(_onexit_m_t _Function); #else #ifdef __cplusplus [System::Security::SecurityCritical] #endif _Check_return_ inline int __clrcall _atexit_m(_In_opt_ void (__clrcall* _Function)(void)) { return _atexit_m_appdomain(_Function); }
inline _onexit_m_t __clrcall _onexit_m(_onexit_t _Function) { return _onexit_m_appdomain(_Function); } #endif #pragma warning (pop)#endif
#ifdef _M_CEE_PURE // In pure mode, atexit is the same as atexit_m_appdomain extern "C++" {
#ifdef __cplusplus [System::Security::SecurityCritical] #endif inline int __clrcall atexit(void (__clrcall* _Function)(void)) { return _atexit_m_appdomain(_Function); }
inline _onexit_t __clrcall _onexit(_onexit_t _Function) { return _onexit_m_appdomain(_Function); }
} // extern "C++"#else int __cdecl atexit(void (__cdecl*)(void)); _onexit_t __cdecl _onexit(_In_opt_ _onexit_t _Func);#endif
int __cdecl at_quick_exit(void (__cdecl*)(void));
//-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+//// Global State (errno, global handlers, etc.)////-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+#ifndef _M_CEE_PURE // a purecall handler procedure. Never returns normally typedef void (__cdecl* _purecall_handler)(void);
// Invalid parameter handler function pointer type typedef void (__cdecl* _invalid_parameter_handler)( wchar_t const*, wchar_t const*, wchar_t const*, unsigned int, uintptr_t );
// Establishes a purecall handler _VCRTIMP _purecall_handler __cdecl _set_purecall_handler( _In_opt_ _purecall_handler _Handler );
_VCRTIMP _purecall_handler __cdecl _get_purecall_handler(void);
// Establishes an invalid parameter handler _ACRTIMP _invalid_parameter_handler __cdecl _set_invalid_parameter_handler( _In_opt_ _invalid_parameter_handler _Handler );
_ACRTIMP _invalid_parameter_handler __cdecl _get_invalid_parameter_handler(void);
_ACRTIMP _invalid_parameter_handler __cdecl _set_thread_local_invalid_parameter_handler( _In_opt_ _invalid_parameter_handler _Handler );
_ACRTIMP _invalid_parameter_handler __cdecl _get_thread_local_invalid_parameter_handler(void);#endif
#if defined __cplusplus && defined _M_CEE_PUREextern "C++"{ typedef void (__clrcall* _purecall_handler)(void); typedef _purecall_handler _purecall_handler_m;
_MRTIMP _purecall_handler __cdecl _set_purecall_handler( _In_opt_ _purecall_handler _Handler );} // extern "C++"#endif
// Argument values for _set_error_mode().#define _OUT_TO_DEFAULT 0#define _OUT_TO_STDERR 1#define _OUT_TO_MSGBOX 2#define _REPORT_ERRMODE 3
_Check_return_opt_ _ACRTIMP int __cdecl _set_error_mode(_In_ int _Mode);
#if _CRT_FUNCTIONS_REQUIRED _ACRTIMP int* __cdecl _errno(void); #define errno (*_errno())
_ACRTIMP errno_t __cdecl _set_errno(_In_ int _Value); _ACRTIMP errno_t __cdecl _get_errno(_Out_ int* _Value);
_ACRTIMP unsigned long* __cdecl __doserrno(void); #define _doserrno (*__doserrno())
_ACRTIMP errno_t __cdecl _set_doserrno(_In_ unsigned long _Value); _ACRTIMP errno_t __cdecl _get_doserrno(_Out_ unsigned long * _Value);
// This is non-const for backwards compatibility; do not modify it. _ACRTIMP _CRT_INSECURE_DEPRECATE(strerror) char** __cdecl __sys_errlist(void); #define _sys_errlist (__sys_errlist())
_ACRTIMP _CRT_INSECURE_DEPRECATE(strerror) int * __cdecl __sys_nerr(void); #define _sys_nerr (*__sys_nerr())
_ACRTIMP void __cdecl perror(_In_opt_z_ char const* _ErrMsg);#endif // _CRT_FUNCTIONS_REQUIRED
// These point to the executable module name._CRT_INSECURE_DEPRECATE_GLOBALS(_get_pgmptr ) _ACRTIMP char** __cdecl __p__pgmptr (void);_CRT_INSECURE_DEPRECATE_GLOBALS(_get_wpgmptr) _ACRTIMP wchar_t** __cdecl __p__wpgmptr(void);_CRT_INSECURE_DEPRECATE_GLOBALS(_get_fmode ) _ACRTIMP int* __cdecl __p__fmode (void);
#ifdef _CRT_DECLARE_GLOBAL_VARIABLES_DIRECTLY _CRT_INSECURE_DEPRECATE_GLOBALS(_get_pgmptr ) extern char* _pgmptr; _CRT_INSECURE_DEPRECATE_GLOBALS(_get_wpgmptr) extern wchar_t* _wpgmptr; #ifndef _CORECRT_BUILD _CRT_INSECURE_DEPRECATE_GLOBALS(_get_fmode ) extern int _fmode; #endif#else #define _pgmptr (*__p__pgmptr ()) #define _wpgmptr (*__p__wpgmptr()) #define _fmode (*__p__fmode ())#endif
_Success_(return == 0)_ACRTIMP errno_t __cdecl _get_pgmptr (_Outptr_result_z_ char** _Value);
_Success_(return == 0)_ACRTIMP errno_t __cdecl _get_wpgmptr(_Outptr_result_z_ wchar_t** _Value);
_ACRTIMP errno_t __cdecl _set_fmode (_In_ int _Mode );
_ACRTIMP errno_t __cdecl _get_fmode (_Out_ int* _PMode);
//-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+//// Math////-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+typedef struct _div_t{ int quot; int rem;} div_t;
typedef struct _ldiv_t{ long quot; long rem;} ldiv_t;
typedef struct _lldiv_t{ long long quot; long long rem;} lldiv_t;
_Check_return_ int __cdecl abs (_In_ int _Number);_Check_return_ long __cdecl labs (_In_ long _Number);_Check_return_ long long __cdecl llabs (_In_ long long _Number);_Check_return_ __int64 __cdecl _abs64(_In_ __int64 _Number);
_Check_return_ unsigned short __cdecl _byteswap_ushort(_In_ unsigned short _Number);_Check_return_ unsigned long __cdecl _byteswap_ulong (_In_ unsigned long _Number);_Check_return_ unsigned __int64 __cdecl _byteswap_uint64(_In_ unsigned __int64 _Number);
_Check_return_ _ACRTIMP div_t __cdecl div (_In_ int _Numerator, _In_ int _Denominator);_Check_return_ _ACRTIMP ldiv_t __cdecl ldiv (_In_ long _Numerator, _In_ long _Denominator);_Check_return_ _ACRTIMP lldiv_t __cdecl lldiv(_In_ long long _Numerator, _In_ long long _Denominator);
// These functions have declspecs in their declarations in the Windows headers,// which cause PREfast to fire 6540.#pragma warning(push)#pragma warning(disable: 6540)
unsigned int __cdecl _rotl( _In_ unsigned int _Value, _In_ int _Shift );
_Check_return_unsigned long __cdecl _lrotl( _In_ unsigned long _Value, _In_ int _Shift );
unsigned __int64 __cdecl _rotl64( _In_ unsigned __int64 _Value, _In_ int _Shift );
unsigned int __cdecl _rotr( _In_ unsigned int _Value, _In_ int _Shift );
_Check_return_unsigned long __cdecl _lrotr( _In_ unsigned long _Value, _In_ int _Shift );
unsigned __int64 __cdecl _rotr64( _In_ unsigned __int64 _Value, _In_ int _Shift );
#pragma warning(pop)
// Maximum value that can be returned by the rand function:#define RAND_MAX 0x7fff
_ACRTIMP void __cdecl srand(_In_ unsigned int _Seed);
_Check_return_ _ACRTIMP int __cdecl rand(void);
#if defined _CRT_RAND_S || defined _CRTBLD _ACRTIMP errno_t __cdecl rand_s(_Out_ unsigned int* _RandomValue);#endif
#ifdef __cplusplusextern "C++"{ inline long abs(long const _X) throw() { return labs(_X); }
inline long long abs(long long const _X) throw() { return llabs(_X); }
inline ldiv_t div(long const _A1, long const _A2) throw() { return ldiv(_A1, _A2); }
inline lldiv_t div(long long const _A1, long long const _A2) throw() { return lldiv(_A1, _A2); }}#endif // __cplusplus
// Structs used to fool the compiler into not generating floating point// instructions when copying and pushing [long] double values#define _CRT_DOUBLE_DEC
#ifndef _LDSUPPORT
#pragma pack(push, 4) typedef struct { unsigned char ld[10]; } _LDOUBLE; #pragma pack(pop)
#define _PTR_LD(x) ((unsigned char*)(&(x)->ld))
#else // _LDSUPPORT
// push and pop long, which is #defined as __int64 by a spec2k test #pragma push_macro("long") #undef long typedef long double _LDOUBLE; #pragma pop_macro("long")
#define _PTR_LD(x) ((unsigned char *)(x))
#endif // _LDSUPPORT
typedef struct{ double x;} _CRT_DOUBLE;
typedef struct{ float f;} _CRT_FLOAT;
// push and pop long, which is #defined as __int64 by a spec2k test#pragma push_macro("long")#undef long
typedef struct{ long double x;} _LONGDOUBLE;
#pragma pop_macro("long")
#pragma pack(push, 4)typedef struct{ unsigned char ld12[12];} _LDBL12;#pragma pack(pop)
//-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+//// Narrow String to Number Conversions////-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+_Check_return_ _ACRTIMP double __cdecl atof (_In_z_ char const* _String);_Check_return_ _CRT_JIT_INTRINSIC _ACRTIMP int __cdecl atoi (_In_z_ char const* _String);_Check_return_ _ACRTIMP long __cdecl atol (_In_z_ char const* _String);_Check_return_ _ACRTIMP long long __cdecl atoll (_In_z_ char const* _String);_Check_return_ _ACRTIMP __int64 __cdecl _atoi64(_In_z_ char const* _String);
_Check_return_ _ACRTIMP double __cdecl _atof_l (_In_z_ char const* _String, _In_opt_ _locale_t _Locale);_Check_return_ _ACRTIMP int __cdecl _atoi_l (_In_z_ char const* _String, _In_opt_ _locale_t _Locale);_Check_return_ _ACRTIMP long __cdecl _atol_l (_In_z_ char const* _String, _In_opt_ _locale_t _Locale);_Check_return_ _ACRTIMP long long __cdecl _atoll_l (_In_z_ char const* _String, _In_opt_ _locale_t _Locale);_Check_return_ _ACRTIMP __int64 __cdecl _atoi64_l(_In_z_ char const* _String, _In_opt_ _locale_t _Locale);
_Check_return_ _ACRTIMP int __cdecl _atoflt (_Out_ _CRT_FLOAT* _Result, _In_z_ char const* _String);_Check_return_ _ACRTIMP int __cdecl _atodbl (_Out_ _CRT_DOUBLE* _Result, _In_z_ char* _String);_Check_return_ _ACRTIMP int __cdecl _atoldbl(_Out_ _LDOUBLE* _Result, _In_z_ char* _String);
_Check_return__ACRTIMP int __cdecl _atoflt_l( _Out_ _CRT_FLOAT* _Result, _In_z_ char const* _String, _In_opt_ _locale_t _Locale );
_Check_return__ACRTIMP int __cdecl _atodbl_l( _Out_ _CRT_DOUBLE* _Result, _In_z_ char* _String, _In_opt_ _locale_t _Locale );
_Check_return__ACRTIMP int __cdecl _atoldbl_l( _Out_ _LDOUBLE* _Result, _In_z_ char* _String, _In_opt_ _locale_t _Locale );
_Check_return__ACRTIMP float __cdecl strtof( _In_z_ char const* _String, _Out_opt_ _Deref_post_z_ char** _EndPtr );
_Check_return__ACRTIMP float __cdecl _strtof_l( _In_z_ char const* _String, _Out_opt_ _Deref_post_z_ char** _EndPtr, _In_opt_ _locale_t _Locale );
_Check_return__ACRTIMP double __cdecl strtod( _In_z_ char const* _String, _Out_opt_ _Deref_post_z_ char** _EndPtr );
_Check_return__ACRTIMP double __cdecl _strtod_l( _In_z_ char const* _String, _Out_opt_ _Deref_post_z_ char** _EndPtr, _In_opt_ _locale_t _Locale );
_Check_return__ACRTIMP long double __cdecl strtold( _In_z_ char const* _String, _Out_opt_ _Deref_post_z_ char** _EndPtr );
_Check_return__ACRTIMP long double __cdecl _strtold_l( _In_z_ char const* _String, _Out_opt_ _Deref_post_z_ char** _EndPtr, _In_opt_ _locale_t _Locale );
_Check_return__ACRTIMP long __cdecl strtol( _In_z_ char const* _String, _Out_opt_ _Deref_post_z_ char** _EndPtr, _In_ int _Radix );
_Check_return__ACRTIMP long __cdecl _strtol_l( _In_z_ char const* _String, _Out_opt_ _Deref_post_z_ char** _EndPtr, _In_ int _Radix, _In_opt_ _locale_t _Locale );
_Check_return__ACRTIMP long long __cdecl strtoll( _In_z_ char const* _String, _Out_opt_ _Deref_post_z_ char** _EndPtr, _In_ int _Radix );
_Check_return__ACRTIMP long long __cdecl _strtoll_l( _In_z_ char const* _String, _Out_opt_ _Deref_post_z_ char** _EndPtr, _In_ int _Radix, _In_opt_ _locale_t _Locale );
_Check_return__ACRTIMP unsigned long __cdecl strtoul( _In_z_ char const* _String, _Out_opt_ _Deref_post_z_ char** _EndPtr, _In_ int _Radix );
_Check_return__ACRTIMP unsigned long __cdecl _strtoul_l( _In_z_ char const* _String, _Out_opt_ _Deref_post_z_ char** _EndPtr, _In_ int _Radix, _In_opt_ _locale_t _Locale );
_Check_return__ACRTIMP unsigned long long __cdecl strtoull( _In_z_ char const* _String, _Out_opt_ _Deref_post_z_ char** _EndPtr, _In_ int _Radix );
_Check_return__ACRTIMP unsigned long long __cdecl _strtoull_l( _In_z_ char const* _String, _Out_opt_ _Deref_post_z_ char** _EndPtr, _In_ int _Radix, _In_opt_ _locale_t _Locale );
_Check_return__ACRTIMP __int64 __cdecl _strtoi64( _In_z_ char const* _String, _Out_opt_ _Deref_post_z_ char** _EndPtr, _In_ int _Radix );
_Check_return__ACRTIMP __int64 __cdecl _strtoi64_l( _In_z_ char const* _String, _Out_opt_ _Deref_post_z_ char** _EndPtr, _In_ int _Radix, _In_opt_ _locale_t _Locale );
_Check_return__ACRTIMP unsigned __int64 __cdecl _strtoui64( _In_z_ char const* _String, _Out_opt_ _Deref_post_z_ char** _EndPtr, _In_ int _Radix );
_Check_return__ACRTIMP unsigned __int64 __cdecl _strtoui64_l( _In_z_ char const* _String, _Out_opt_ _Deref_post_z_ char** _EndPtr, _In_ int _Radix, _In_opt_ _locale_t _Locale );
//-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+//// Number to Narrow String Conversions////-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+_Success_(return == 0)_Check_return_opt__ACRTIMP errno_t __cdecl _itoa_s( _In_ int _Value, _Out_writes_z_(_BufferCount) char* _Buffer, _In_ size_t _BufferCount, _In_ int _Radix );
__DEFINE_CPP_OVERLOAD_SECURE_FUNC_1_1( _Success_(return == 0) errno_t, _itoa_s, _In_ int, _Value, char, _Buffer, _In_ int, _Radix )
__DEFINE_CPP_OVERLOAD_STANDARD_FUNC_1_1( char*, __RETURN_POLICY_DST, _ACRTIMP, _itoa, _In_ int, _Value, _Pre_notnull_ _Post_z_, char, _Buffer, _In_ int, _Radix )
_Success_(return == 0)_Check_return_opt__ACRTIMP errno_t __cdecl _ltoa_s( _In_ long _Value, _Out_writes_z_(_BufferCount) char* _Buffer, _In_ size_t _BufferCount, _In_ int _Radix );
__DEFINE_CPP_OVERLOAD_SECURE_FUNC_1_1( errno_t, _ltoa_s, _In_ long, _Value, char, _Buffer, _In_ int, _Radix )
__DEFINE_CPP_OVERLOAD_STANDARD_FUNC_1_1( char*, __RETURN_POLICY_DST, _ACRTIMP, _ltoa, _In_ long, _Value, _Pre_notnull_ _Post_z_, char, _Buffer, _In_ int, _Radix )
_Success_(return == 0)_Check_return_opt__ACRTIMP errno_t __cdecl _ultoa_s( _In_ unsigned long _Value, _Out_writes_z_(_BufferCount) char* _Buffer, _In_ size_t _BufferCount, _In_ int _Radix );
__DEFINE_CPP_OVERLOAD_SECURE_FUNC_1_1( errno_t, _ultoa_s, _In_ unsigned long, _Value, char, _Buffer, _In_ int, _Radix )
__DEFINE_CPP_OVERLOAD_STANDARD_FUNC_1_1( char*, __RETURN_POLICY_DST, _ACRTIMP, _ultoa, _In_ unsigned long, _Value, _Pre_notnull_ _Post_z_, char, _Buffer, _In_ int, _Radix )
_Success_(return == 0)_Check_return_opt__ACRTIMP errno_t __cdecl _i64toa_s( _In_ __int64 _Value, _Out_writes_z_(_BufferCount) char* _Buffer, _In_ size_t _BufferCount, _In_ int _Radix );
_Success_(return == 0)_CRT_INSECURE_DEPRECATE(_i64toa_s)_ACRTIMP char* __cdecl _i64toa( _In_ __int64 _Value, _Pre_notnull_ _Post_z_ char* _Buffer, _In_ int _Radix );
_Success_(return == 0)_Check_return_opt__ACRTIMP errno_t __cdecl _ui64toa_s( _In_ unsigned __int64 _Value, _Out_writes_z_(_BufferCount) char* _Buffer, _In_ size_t _BufferCount, _In_ int _Radix );
_CRT_INSECURE_DEPRECATE(_ui64toa_s)_ACRTIMP char* __cdecl _ui64toa( _In_ unsigned __int64 _Value, _Pre_notnull_ _Post_z_ char* _Buffer, _In_ int _Radix );
// _CVTBUFSIZE is the maximum size for the per-thread conversion buffer. It// should be at least as long as the number of digits in the largest double// precision value (?.?e308 in IEEE arithmetic). We will use the same size// buffer as is used in the printf support routines.//// (This value actually allows 40 additional decimal places; even though there// are only 16 digits of accuracy in a double precision IEEE number, the user may// ask for more to effect zero padding.)#define _CVTBUFSIZE (309 + 40) // # of digits in max. dp value + slop
_Success_(return == 0)_Check_return_wat__ACRTIMP errno_t __cdecl _ecvt_s( _Out_writes_z_(_BufferCount) char* _Buffer, _In_ size_t _BufferCount, _In_ double _Value, _In_ int _DigitCount, _Out_ int* _PtDec, _Out_ int* _PtSign );
__DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_4( errno_t, _ecvt_s, char, _Buffer, _In_ double, _Value, _In_ int, _DigitCount, _Out_ int*, _PtDec, _Out_ int*, _PtSign )
_Check_return_ _CRT_INSECURE_DEPRECATE(_ecvt_s)_ACRTIMP char* __cdecl _ecvt( _In_ double _Value, _In_ int _DigitCount, _Out_ int* _PtDec, _Out_ int* _PtSign );
_Success_(return == 0)_Check_return_wat__ACRTIMP errno_t __cdecl _fcvt_s( _Out_writes_z_(_BufferCount) char* _Buffer, _In_ size_t _BufferCount, _In_ double _Value, _In_ int _FractionalDigitCount, _Out_ int* _PtDec, _Out_ int* _PtSign );
__DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_4( _Success_(return == 0) errno_t, _fcvt_s, char, _Buffer, _In_ double, _Value, _In_ int, _FractionalDigitCount, _Out_ int*, _PtDec, _Out_ int*, _PtSign )
_Success_(return == 0)_Check_return_ _CRT_INSECURE_DEPRECATE(_fcvt_s)_ACRTIMP char* __cdecl _fcvt( _In_ double _Value, _In_ int _FractionalDigitCount, _Out_ int* _PtDec, _Out_ int* _PtSign );
_Success_(return == 0)_ACRTIMP errno_t __cdecl _gcvt_s( _Out_writes_z_(_BufferCount) char* _Buffer, _In_ size_t _BufferCount, _In_ double _Value, _In_ int _DigitCount );
__DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_2( _Success_(return == 0) errno_t, _gcvt_s, char, _Buffer, _In_ double, _Value, _In_ int, _DigitCount )
_CRT_INSECURE_DEPRECATE(_gcvt_s)_ACRTIMP char* __cdecl _gcvt( _In_ double _Value, _In_ int _DigitCount, _Pre_notnull_ _Post_z_ char* _Buffer );
//-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+//// Multibyte String Operations and Conversions////-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+// Maximum number of bytes in multi-byte character in the current locale// (also defined in ctype.h).#ifndef MB_CUR_MAX #if defined _CRT_DISABLE_PERFCRIT_LOCKS && !defined _DLL #define MB_CUR_MAX __mb_cur_max #else #define MB_CUR_MAX ___mb_cur_max_func() #endif
#ifdef _CRT_DECLARE_GLOBAL_VARIABLES_DIRECTLY extern int __mb_cur_max; #else #define __mb_cur_max (___mb_cur_max_func()) #endif
_Post_satisfies_(return > 0 && return < MB_LEN_MAX) _ACRTIMP int __cdecl ___mb_cur_max_func(void);
_Post_satisfies_(return > 0 && return < MB_LEN_MAX) _ACRTIMP int __cdecl ___mb_cur_max_l_func(_locale_t _Locale);#endif
_Check_return__ACRTIMP int __cdecl mblen( _In_reads_bytes_opt_(_MaxCount) _Pre_opt_z_ char const* _Ch, _In_ size_t _MaxCount );
_Check_return__ACRTIMP int __cdecl _mblen_l( _In_reads_bytes_opt_(_MaxCount) _Pre_opt_z_ char const* _Ch, _In_ size_t _MaxCount, _In_opt_ _locale_t _Locale );
_Check_return__Post_satisfies_(return <= _String_length_(_String))_ACRTIMP size_t __cdecl _mbstrlen( _In_z_ char const* _String );
_Check_return__Post_satisfies_(return <= _String_length_(_String) || return == (size_t)-1)_ACRTIMP size_t __cdecl _mbstrlen_l( _In_z_ char const* _String, _In_opt_ _locale_t _Locale );
_Check_return__Post_satisfies_((return <= _String_length_(_String) && return <= _MaxCount) || return == (size_t)-1)_ACRTIMP size_t __cdecl _mbstrnlen( _In_z_ char const* _String, _In_ size_t _MaxCount );
_Post_satisfies_((return <= _String_length_(_String) && return <= _MaxCount) || return == (size_t)-1)_Check_return__ACRTIMP size_t __cdecl _mbstrnlen_l( _In_z_ char const* _String, _In_ size_t _MaxCount, _In_opt_ _locale_t _Locale );
_Success_(return != -1)_ACRTIMP int __cdecl mbtowc( _Pre_notnull_ _Post_z_ wchar_t* _DstCh, _In_reads_or_z_opt_(_SrcSizeInBytes) char const* _SrcCh, _In_ size_t _SrcSizeInBytes );
_Success_(return != -1)_ACRTIMP int __cdecl _mbtowc_l( _Pre_notnull_ _Post_z_ wchar_t* _DstCh, _In_reads_or_z_opt_(_SrcSizeInBytes) char const* _SrcCh, _In_ size_t _SrcSizeInBytes, _In_opt_ _locale_t _Locale );
_Check_return_opt__ACRTIMP errno_t __cdecl mbstowcs_s( _Out_opt_ size_t* _PtNumOfCharConverted, _Out_writes_to_opt_(_SizeInWords, *_PtNumOfCharConverted) wchar_t* _DstBuf, _In_ size_t _SizeInWords, _In_reads_or_z_(_MaxCount) char const* _SrcBuf, _In_ size_t _MaxCount );
__DEFINE_CPP_OVERLOAD_SECURE_FUNC_1_2( errno_t, mbstowcs_s, _Out_opt_ size_t*, _PtNumOfCharConverted, _Post_z_ wchar_t, _Dest, _In_z_ char const*, _Source, _In_ size_t, _MaxCount )
__DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_2_SIZE( _ACRTIMP, mbstowcs, _Out_writes_opt_z_(_MaxCount), wchar_t, _Dest, _In_z_ char const*, _Source, _In_ size_t, _MaxCount )
_Check_return_opt__ACRTIMP errno_t __cdecl _mbstowcs_s_l( _Out_opt_ size_t* _PtNumOfCharConverted, _Out_writes_to_opt_(_SizeInWords, *_PtNumOfCharConverted) wchar_t* _DstBuf, _In_ size_t _SizeInWords, _In_reads_or_z_(_MaxCount) char const* _SrcBuf, _In_ size_t _MaxCount, _In_opt_ _locale_t _Locale );
__DEFINE_CPP_OVERLOAD_SECURE_FUNC_1_3( errno_t, _mbstowcs_s_l, _Out_opt_ size_t*, _PtNumOfCharConverted, _Post_z_ wchar_t, _Dest, _In_z_ char const*, _Source, _In_ size_t, _MaxCount, _In_opt_ _locale_t, _Locale )
__DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_3_SIZE_EX( _ACRTIMP, _mbstowcs_l, _mbstowcs_s_l, _Out_writes_opt_z_(_Size) wchar_t, _Out_writes_z_(_MaxCount), wchar_t, _Dest, _In_z_ char const*, _Source, _In_ size_t, _MaxCount, _In_opt_ _locale_t, _Locale )
_CRT_INSECURE_DEPRECATE(wctomb_s)_ACRTIMP int __cdecl wctomb( _Out_writes_opt_z_(MB_LEN_MAX) char* _MbCh, _In_ wchar_t _WCh );
_CRT_INSECURE_DEPRECATE(_wctomb_s_l)_ACRTIMP int __cdecl _wctomb_l( _Pre_maybenull_ _Post_z_ char* _MbCh, _In_ wchar_t _WCh, _In_opt_ _locale_t _Locale );
#if __STDC_WANT_SECURE_LIB__
_Check_return_wat_ _ACRTIMP errno_t __cdecl wctomb_s( _Out_opt_ int* _SizeConverted, _Out_writes_bytes_to_opt_(_SizeInBytes, *_SizeConverted) char* _MbCh, _In_ rsize_t _SizeInBytes, _In_ wchar_t _WCh );
#endif // __STDC_WANT_SECURE_LIB__
_Check_return_wat__ACRTIMP errno_t __cdecl _wctomb_s_l( _Out_opt_ int* _SizeConverted, _Out_writes_opt_z_(_SizeInBytes) char* _MbCh, _In_ size_t _SizeInBytes, _In_ wchar_t _WCh, _In_opt_ _locale_t _Locale);
_Check_return_wat__ACRTIMP errno_t __cdecl wcstombs_s( _Out_opt_ size_t* _PtNumOfCharConverted, _Out_writes_bytes_to_opt_(_DstSizeInBytes, *_PtNumOfCharConverted) char* _Dst, _In_ size_t _DstSizeInBytes, _In_z_ wchar_t const* _Src, _In_ size_t _MaxCountInBytes );
__DEFINE_CPP_OVERLOAD_SECURE_FUNC_1_2( errno_t, wcstombs_s, _Out_opt_ size_t*, _PtNumOfCharConverted, _Out_writes_bytes_opt_(_Size) char, _Dest, _In_z_ wchar_t const*, _Source, _In_ size_t, _MaxCount )
__DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_2_SIZE( _ACRTIMP, wcstombs, _Out_writes_opt_(_MaxCount), char, _Dest, _In_z_ wchar_t const*, _Source, _In_ size_t, _MaxCount )
_Check_return_wat__ACRTIMP errno_t __cdecl _wcstombs_s_l( _Out_opt_ size_t* _PtNumOfCharConverted, _Out_writes_bytes_to_opt_(_DstSizeInBytes, *_PtNumOfCharConverted) char* _Dst, _In_ size_t _DstSizeInBytes, _In_z_ wchar_t const* _Src, _In_ size_t _MaxCountInBytes, _In_opt_ _locale_t _Locale );
__DEFINE_CPP_OVERLOAD_SECURE_FUNC_1_3( errno_t, _wcstombs_s_l, _Out_opt_ size_t*, _PtNumOfCharConverted, _Out_writes_opt_(_Size) char, _Dest, _In_z_ wchar_t const*, _Source, _In_ size_t, _MaxCount, _In_opt_ _locale_t, _Locale )
__DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_3_SIZE_EX( _ACRTIMP, _wcstombs_l, _wcstombs_s_l, _Out_writes_opt_z_(_Size) char, _Out_writes_(_MaxCount), char, _Dest, _In_z_ wchar_t const*, _Source, _In_ size_t, _MaxCount, _In_opt_ _locale_t, _Locale )
//-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+//// Path Manipulation////-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+// Sizes for buffers used by the _makepath() and _splitpath() functions.// note that the sizes include space for 0-terminator#define _MAX_PATH 260 // max. length of full pathname#define _MAX_DRIVE 3 // max. length of drive component#define _MAX_DIR 256 // max. length of path component#define _MAX_FNAME 256 // max. length of file name component#define _MAX_EXT 256 // max. length of extension component
#pragma push_macro("_fullpath")#undef _fullpath
_Success_(return != 0)_Check_return__ACRTIMP _CRTALLOCATOR char* __cdecl _fullpath( _Out_writes_opt_z_(_BufferCount) char* _Buffer, _In_z_ char const* _Path, _In_ size_t _BufferCount );
#pragma pop_macro("_fullpath")
_Check_return_wat__ACRTIMP errno_t __cdecl _makepath_s( _Out_writes_z_(_BufferCount) char* _Buffer, _In_ size_t _BufferCount, _In_opt_z_ char const* _Drive, _In_opt_z_ char const* _Dir, _In_opt_z_ char const* _Filename, _In_opt_z_ char const* _Ext );
__DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_4( errno_t, _makepath_s, char, _Buffer, _In_opt_z_ char const*, _Drive, _In_opt_z_ char const*, _Dir, _In_opt_z_ char const*, _Filename, _In_opt_z_ char const*, _Ext )
__DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_4( void, __RETURN_POLICY_VOID, _ACRTIMP, _makepath, _Pre_notnull_ _Post_z_, char, _Buffer, _In_opt_z_ char const*, _Drive, _In_opt_z_ char const*, _Dir, _In_opt_z_ char const*, _Filename, _In_opt_z_ char const*, _Ext )
_CRT_INSECURE_DEPRECATE(_splitpath_s)_ACRTIMP void __cdecl _splitpath( _In_z_ char const* _FullPath, _Pre_maybenull_ _Post_z_ char* _Drive, _Pre_maybenull_ _Post_z_ char* _Dir, _Pre_maybenull_ _Post_z_ char* _Filename, _Pre_maybenull_ _Post_z_ char* _Ext );
_Check_return_wat__ACRTIMP errno_t __cdecl _splitpath_s( _In_z_ char const* _FullPath, _Out_writes_opt_z_(_DriveCount) char* _Drive, _In_ size_t _DriveCount, _Out_writes_opt_z_(_DirCount) char* _Dir, _In_ size_t _DirCount, _Out_writes_opt_z_(_FilenameCount) char* _Filename, _In_ size_t _FilenameCount, _Out_writes_opt_z_(_ExtCount) char* _Ext, _In_ size_t _ExtCount );
__DEFINE_CPP_OVERLOAD_SECURE_FUNC_SPLITPATH(errno_t, _splitpath_s, char, _Dest)
#if __STDC_WANT_SECURE_LIB__
_Check_return_opt__Success_(return == 0)_DCRTIMP errno_t __cdecl getenv_s( _Out_ size_t* _RequiredCount, _Out_writes_opt_z_(_BufferCount) char* _Buffer, _In_ rsize_t _BufferCount, _In_z_ char const* _VarName );
#endif // __STDC_WANT_SECURE_LIB__
_ACRTIMP int* __cdecl __p___argc (void);_ACRTIMP char*** __cdecl __p___argv (void);_ACRTIMP wchar_t*** __cdecl __p___wargv(void);
#ifdef _CRT_DECLARE_GLOBAL_VARIABLES_DIRECTLY extern int __argc; extern char** __argv; extern wchar_t** __wargv;#else #define __argc (*__p___argc()) // Pointer to number of command line arguments #define __argv (*__p___argv()) // Pointer to table of narrow command line arguments #define __wargv (*__p___wargv()) // Pointer to table of wide command line arguments#endif
_DCRTIMP char*** __cdecl __p__environ (void);_DCRTIMP wchar_t*** __cdecl __p__wenviron(void);
#ifndef _CRT_BEST_PRACTICES_USAGE #define _CRT_V12_LEGACY_FUNCTIONALITY#endif
#ifndef _CRT_V12_LEGACY_FUNCTIONALITY // Deprecated symbol: Do not expose environment global pointers unless // legacy access is specifically requested #define _environ crt_usage_error__do_not_reference_global_pointer_directly__environ #define _wenviron crt_usage_error__do_not_reference_global_pointer_directly__wenviron#else #define _environ (*__p__environ()) // Pointer to narrow environment table #define _wenviron (*__p__wenviron()) // Pointer to wide environment table#endif
// Sizes for buffers used by the getenv/putenv family of functions.#define _MAX_ENV 32767
#if _CRT_FUNCTIONS_REQUIRED
_Check_return_ _CRT_INSECURE_DEPRECATE(_dupenv_s) _DCRTIMP char* __cdecl getenv( _In_z_ char const* _VarName );
__DEFINE_CPP_OVERLOAD_SECURE_FUNC_1_1( errno_t, getenv_s, _Out_ size_t*, _RequiredCount, char, _Buffer, _In_z_ char const*, _VarName )
#if defined(_DEBUG) && defined(_CRTDBG_MAP_ALLOC) #pragma push_macro("_dupenv_s") #undef _dupenv_s #endif
_Check_return_opt_ _DCRTIMP errno_t __cdecl _dupenv_s( _Outptr_result_buffer_maybenull_(*_BufferCount) _Outptr_result_maybenull_z_ char** _Buffer, _Out_opt_ size_t* _BufferCount, _In_z_ char const* _VarName );
#if defined(_DEBUG) && defined(_CRTDBG_MAP_ALLOC) #pragma pop_macro("_dupenv_s") #endif
_DCRTIMP int __cdecl system( _In_opt_z_ char const* _Command );
// The functions below have declspecs in their declarations in the Windows // headers, causing PREfast to fire 6540 here #pragma warning(push) #pragma warning(disable: 6540)
_Check_return_ _DCRTIMP int __cdecl _putenv( _In_z_ char const* _EnvString );
_Check_return_wat_ _DCRTIMP errno_t __cdecl _putenv_s( _In_z_ char const* _Name, _In_z_ char const* _Value );
#pragma warning(pop)
_DCRTIMP errno_t __cdecl _searchenv_s( _In_z_ char const* _Filename, _In_z_ char const* _VarName, _Out_writes_z_(_BufferCount) char* _Buffer, _In_ size_t _BufferCount );
__DEFINE_CPP_OVERLOAD_SECURE_FUNC_2_0( errno_t, _searchenv_s, _In_z_ char const*, _Filename, _In_z_ char const*, _VarName, char, _Buffer )
__DEFINE_CPP_OVERLOAD_STANDARD_FUNC_2_0( void, __RETURN_POLICY_VOID, _DCRTIMP, _searchenv, _In_z_ char const*, _Filename, _In_z_ char const*, _VarName, _Pre_notnull_ _Post_z_, char, _Buffer )
// The Win32 API SetErrorMode, Beep and Sleep should be used instead. _CRT_OBSOLETE(SetErrorMode) _DCRTIMP void __cdecl _seterrormode( _In_ int _Mode );
_CRT_OBSOLETE(Beep) _DCRTIMP void __cdecl _beep( _In_ unsigned _Frequency, _In_ unsigned _Duration );
_CRT_OBSOLETE(Sleep) _DCRTIMP void __cdecl _sleep( _In_ unsigned long _Duration );
#endif // _CRT_FUNCTIONS_REQUIRED
//-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+//// Non-ANSI Names for Compatibility////-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+#if defined(_CRT_INTERNAL_NONSTDC_NAMES) && _CRT_INTERNAL_NONSTDC_NAMES
#ifndef __cplusplus #define max(a,b) (((a) > (b)) ? (a) : (b)) #define min(a,b) (((a) < (b)) ? (a) : (b)) #endif
#define sys_errlist _sys_errlist #define sys_nerr _sys_nerr
#pragma warning(push) #pragma warning(disable: 4141) // Using deprecated twice
_Check_return_ _CRT_NONSTDC_DEPRECATE(_ecvt) _CRT_INSECURE_DEPRECATE(_ecvt_s) _ACRTIMP char* __cdecl ecvt( _In_ double _Value, _In_ int _DigitCount, _Out_ int* _PtDec, _Out_ int* _PtSign );
_Check_return_ _CRT_NONSTDC_DEPRECATE(_fcvt) _CRT_INSECURE_DEPRECATE(_fcvt_s) _ACRTIMP char* __cdecl fcvt( _In_ double _Value, _In_ int _FractionalDigitCount, _Out_ int* _PtDec, _Out_ int* _PtSign );
_CRT_NONSTDC_DEPRECATE(_gcvt) _CRT_INSECURE_DEPRECATE(_fcvt_s) _ACRTIMP char* __cdecl gcvt( _In_ double _Value, _In_ int _DigitCount, _Pre_notnull_ _Post_z_ char* _DstBuf );
_CRT_NONSTDC_DEPRECATE(_itoa) _CRT_INSECURE_DEPRECATE(_itoa_s) _ACRTIMP char* __cdecl itoa( _In_ int _Value, _Pre_notnull_ _Post_z_ char* _Buffer, _In_ int _Radix );
_CRT_NONSTDC_DEPRECATE(_ltoa) _CRT_INSECURE_DEPRECATE(_ltoa_s) _ACRTIMP char* __cdecl ltoa( _In_ long _Value, _Pre_notnull_ _Post_z_ char* _Buffer, _In_ int _Radix );
_CRT_NONSTDC_DEPRECATE(_swab) _ACRTIMP void __cdecl swab( _Inout_updates_z_(_SizeInBytes) char* _Buf1, _Inout_updates_z_(_SizeInBytes) char* _Buf2, _In_ int _SizeInBytes );
_CRT_NONSTDC_DEPRECATE(_ultoa) _CRT_INSECURE_DEPRECATE(_ultoa_s) _ACRTIMP char* __cdecl ultoa( _In_ unsigned long _Value, _Pre_notnull_ _Post_z_ char* _Buffer, _In_ int _Radix );
#define environ _environ
_Check_return_ _CRT_NONSTDC_DEPRECATE(_putenv) _DCRTIMP int __cdecl putenv( _In_z_ char const* _EnvString );
#pragma warning(pop)
onexit_t __cdecl onexit(_In_opt_ onexit_t _Func);
#endif // _CRT_INTERNAL_NONSTDC_NAMES
_CRT_END_C_HEADER_UCRT_RESTORE_CLANG_WARNINGS#pragma warning(pop) // _UCRT_DISABLED_WARNINGS#endif // _INC_STDLIB