You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
2449 lines
77 KiB
2449 lines
77 KiB
2 years ago
|
//
|
||
|
// stdio.h
|
||
|
//
|
||
|
// Copyright (c) Microsoft Corporation. All rights reserved.
|
||
|
//
|
||
|
// The C Standard Library <stdio.h> header.
|
||
|
//
|
||
|
#pragma once
|
||
|
#ifndef _INC_STDIO // include guard for 3rd party interop
|
||
|
#define _INC_STDIO
|
||
|
|
||
|
#include <corecrt.h>
|
||
|
#include <corecrt_wstdio.h>
|
||
|
|
||
|
#pragma warning(push)
|
||
|
#pragma warning(disable: _UCRT_DISABLED_WARNINGS)
|
||
|
_UCRT_DISABLE_CLANG_WARNINGS
|
||
|
|
||
|
_CRT_BEGIN_C_HEADER
|
||
|
|
||
|
/* Buffered I/O macros */
|
||
|
|
||
|
#define BUFSIZ 512
|
||
|
|
||
|
|
||
|
|
||
|
/*
|
||
|
* Default number of supported streams. _NFILE is confusing and obsolete, but
|
||
|
* supported anyway for backwards compatibility.
|
||
|
*/
|
||
|
#define _NFILE _NSTREAM_
|
||
|
|
||
|
#define _NSTREAM_ 512
|
||
|
|
||
|
/*
|
||
|
* Number of entries in _iob[] (declared below). Note that _NSTREAM_ must be
|
||
|
* greater than or equal to _IOB_ENTRIES.
|
||
|
*/
|
||
|
#define _IOB_ENTRIES 3
|
||
|
|
||
|
#define EOF (-1)
|
||
|
|
||
|
#define _IOFBF 0x0000
|
||
|
#define _IOLBF 0x0040
|
||
|
#define _IONBF 0x0004
|
||
|
|
||
|
|
||
|
|
||
|
#define L_tmpnam 260 // _MAX_PATH
|
||
|
#if __STDC_WANT_SECURE_LIB__
|
||
|
#define L_tmpnam_s L_tmpnam
|
||
|
#endif
|
||
|
|
||
|
|
||
|
|
||
|
/* Seek method constants */
|
||
|
|
||
|
#define SEEK_CUR 1
|
||
|
#define SEEK_END 2
|
||
|
#define SEEK_SET 0
|
||
|
|
||
|
|
||
|
#define FILENAME_MAX 260
|
||
|
#define FOPEN_MAX 20
|
||
|
#define _SYS_OPEN 20
|
||
|
#define TMP_MAX _CRT_INT_MAX
|
||
|
#if __STDC_WANT_SECURE_LIB__
|
||
|
#define TMP_MAX_S TMP_MAX
|
||
|
#define _TMP_MAX_S TMP_MAX
|
||
|
#endif
|
||
|
|
||
|
|
||
|
typedef __int64 fpos_t;
|
||
|
|
||
|
|
||
|
|
||
|
#if _CRT_FUNCTIONS_REQUIRED
|
||
|
|
||
|
_Check_return_opt_
|
||
|
_ACRTIMP errno_t __cdecl _get_stream_buffer_pointers(
|
||
|
_In_ FILE* _Stream,
|
||
|
_Out_opt_ char*** _Base,
|
||
|
_Out_opt_ char*** _Pointer,
|
||
|
_Out_opt_ int** _Count
|
||
|
);
|
||
|
|
||
|
|
||
|
//-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
||
|
//
|
||
|
// Narrow Character Stream I/O Functions
|
||
|
//
|
||
|
//-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
||
|
#if __STDC_WANT_SECURE_LIB__
|
||
|
|
||
|
_Check_return_wat_
|
||
|
_ACRTIMP errno_t __cdecl clearerr_s(
|
||
|
_Inout_ FILE* _Stream
|
||
|
);
|
||
|
|
||
|
_Check_return_wat_
|
||
|
_Success_(return == 0)
|
||
|
_ACRTIMP errno_t __cdecl fopen_s(
|
||
|
_Outptr_result_nullonfailure_ FILE** _Stream,
|
||
|
_In_z_ char const* _FileName,
|
||
|
_In_z_ char const* _Mode
|
||
|
);
|
||
|
|
||
|
_Check_return_opt_
|
||
|
_Success_(return != 0)
|
||
|
_ACRTIMP size_t __cdecl fread_s(
|
||
|
_Out_writes_bytes_to_(_BufferSize, _ElementSize * _ElementCount) void* _Buffer,
|
||
|
_In_range_(>=, _ElementSize * _ElementCount) size_t _BufferSize,
|
||
|
_In_ size_t _ElementSize,
|
||
|
_In_ size_t _ElementCount,
|
||
|
_Inout_ FILE* _Stream
|
||
|
);
|
||
|
|
||
|
_Check_return_wat_
|
||
|
_ACRTIMP errno_t __cdecl freopen_s(
|
||
|
_Outptr_result_maybenull_ FILE** _Stream,
|
||
|
_In_z_ char const* _FileName,
|
||
|
_In_z_ char const* _Mode,
|
||
|
_Inout_ FILE* _OldStream
|
||
|
);
|
||
|
|
||
|
_Success_(return != 0)
|
||
|
_ACRTIMP char* __cdecl gets_s(
|
||
|
_Out_writes_z_(_Size) char* _Buffer,
|
||
|
_In_ rsize_t _Size
|
||
|
);
|
||
|
|
||
|
_Check_return_wat_
|
||
|
_ACRTIMP errno_t __cdecl tmpfile_s(
|
||
|
_Out_opt_ _Deref_post_valid_ FILE** _Stream
|
||
|
);
|
||
|
|
||
|
_Success_(return == 0)
|
||
|
_Check_return_wat_
|
||
|
_ACRTIMP errno_t __cdecl tmpnam_s(
|
||
|
_Out_writes_z_(_Size) char* _Buffer,
|
||
|
_In_ rsize_t _Size
|
||
|
);
|
||
|
|
||
|
#endif
|
||
|
|
||
|
_ACRTIMP void __cdecl clearerr(
|
||
|
_Inout_ FILE* _Stream
|
||
|
);
|
||
|
|
||
|
_Success_(return != -1)
|
||
|
_Check_return_opt_
|
||
|
_ACRTIMP int __cdecl fclose(
|
||
|
_Inout_ FILE* _Stream
|
||
|
);
|
||
|
|
||
|
_Check_return_opt_
|
||
|
_ACRTIMP int __cdecl _fcloseall(void);
|
||
|
|
||
|
_Check_return_
|
||
|
_ACRTIMP FILE* __cdecl _fdopen(
|
||
|
_In_ int _FileHandle,
|
||
|
_In_z_ char const* _Mode
|
||
|
);
|
||
|
|
||
|
_Check_return_
|
||
|
_ACRTIMP int __cdecl feof(
|
||
|
_In_ FILE* _Stream
|
||
|
);
|
||
|
|
||
|
_Check_return_
|
||
|
_ACRTIMP int __cdecl ferror(
|
||
|
_In_ FILE* _Stream
|
||
|
);
|
||
|
|
||
|
_Check_return_opt_
|
||
|
_ACRTIMP int __cdecl fflush(
|
||
|
_Inout_opt_ FILE* _Stream
|
||
|
);
|
||
|
|
||
|
_Success_(return != EOF)
|
||
|
_Check_return_opt_
|
||
|
_ACRTIMP int __cdecl fgetc(
|
||
|
_Inout_ FILE* _Stream
|
||
|
);
|
||
|
|
||
|
_Check_return_opt_
|
||
|
_ACRTIMP int __cdecl _fgetchar(void);
|
||
|
|
||
|
_Success_(return != EOF)
|
||
|
_Check_return_opt_
|
||
|
_ACRTIMP int __cdecl fgetpos(
|
||
|
_Inout_ FILE* _Stream,
|
||
|
_Out_ fpos_t* _Position
|
||
|
);
|
||
|
|
||
|
_Success_(return == _Buffer)
|
||
|
_Check_return_opt_
|
||
|
_ACRTIMP char* __cdecl fgets(
|
||
|
_Out_writes_z_(_MaxCount) char* _Buffer,
|
||
|
_In_ int _MaxCount,
|
||
|
_Inout_ FILE* _Stream
|
||
|
);
|
||
|
|
||
|
_Check_return_
|
||
|
_ACRTIMP int __cdecl _fileno(
|
||
|
_In_ FILE* _Stream
|
||
|
);
|
||
|
|
||
|
_Check_return_opt_
|
||
|
_ACRTIMP int __cdecl _flushall(void);
|
||
|
|
||
|
_Check_return_ _CRT_INSECURE_DEPRECATE(fopen_s)
|
||
|
_ACRTIMP FILE* __cdecl fopen(
|
||
|
_In_z_ char const* _FileName,
|
||
|
_In_z_ char const* _Mode
|
||
|
);
|
||
|
|
||
|
|
||
|
_Success_(return != EOF)
|
||
|
_Check_return_opt_
|
||
|
_ACRTIMP int __cdecl fputc(
|
||
|
_In_ int _Character,
|
||
|
_Inout_ FILE* _Stream
|
||
|
);
|
||
|
|
||
|
_Check_return_opt_
|
||
|
_ACRTIMP int __cdecl _fputchar(
|
||
|
_In_ int _Character
|
||
|
);
|
||
|
|
||
|
_Success_(return != EOF)
|
||
|
_Check_return_opt_
|
||
|
_ACRTIMP int __cdecl fputs(
|
||
|
_In_z_ char const* _Buffer,
|
||
|
_Inout_ FILE* _Stream
|
||
|
);
|
||
|
|
||
|
_Check_return_opt_
|
||
|
_ACRTIMP size_t __cdecl fread(
|
||
|
_Out_writes_bytes_(_ElementSize * _ElementCount) void* _Buffer,
|
||
|
_In_ size_t _ElementSize,
|
||
|
_In_ size_t _ElementCount,
|
||
|
_Inout_ FILE* _Stream
|
||
|
);
|
||
|
|
||
|
_Success_(return != 0)
|
||
|
_Check_return_ _CRT_INSECURE_DEPRECATE(freopen_s)
|
||
|
_ACRTIMP FILE* __cdecl freopen(
|
||
|
_In_z_ char const* _FileName,
|
||
|
_In_z_ char const* _Mode,
|
||
|
_Inout_ FILE* _Stream
|
||
|
);
|
||
|
|
||
|
_Check_return_
|
||
|
_ACRTIMP FILE* __cdecl _fsopen(
|
||
|
_In_z_ char const* _FileName,
|
||
|
_In_z_ char const* _Mode,
|
||
|
_In_ int _ShFlag
|
||
|
);
|
||
|
|
||
|
_Success_(return == 0)
|
||
|
_Check_return_opt_
|
||
|
_ACRTIMP int __cdecl fsetpos(
|
||
|
_Inout_ FILE* _Stream,
|
||
|
_In_ fpos_t const* _Position
|
||
|
);
|
||
|
|
||
|
_Success_(return == 0)
|
||
|
_Check_return_opt_
|
||
|
_ACRTIMP int __cdecl fseek(
|
||
|
_Inout_ FILE* _Stream,
|
||
|
_In_ long _Offset,
|
||
|
_In_ int _Origin
|
||
|
);
|
||
|
|
||
|
_Success_(return == 0)
|
||
|
_Check_return_opt_
|
||
|
_ACRTIMP int __cdecl _fseeki64(
|
||
|
_Inout_ FILE* _Stream,
|
||
|
_In_ __int64 _Offset,
|
||
|
_In_ int _Origin
|
||
|
);
|
||
|
|
||
|
_Success_(return != -1)
|
||
|
_Check_return_
|
||
|
_ACRTIMP long __cdecl ftell(
|
||
|
_Inout_ FILE* _Stream
|
||
|
);
|
||
|
|
||
|
_Success_(return != -1)
|
||
|
_Check_return_
|
||
|
_ACRTIMP __int64 __cdecl _ftelli64(
|
||
|
_Inout_ FILE* _Stream
|
||
|
);
|
||
|
|
||
|
_Check_return_opt_
|
||
|
_ACRTIMP size_t __cdecl fwrite(
|
||
|
_In_reads_bytes_(_ElementSize * _ElementCount) void const* _Buffer,
|
||
|
_In_ size_t _ElementSize,
|
||
|
_In_ size_t _ElementCount,
|
||
|
_Inout_ FILE* _Stream
|
||
|
);
|
||
|
|
||
|
_Success_(return != EOF)
|
||
|
_Check_return_
|
||
|
_ACRTIMP int __cdecl getc(
|
||
|
_Inout_ FILE* _Stream
|
||
|
);
|
||
|
|
||
|
_Check_return_
|
||
|
_ACRTIMP int __cdecl getchar(void);
|
||
|
|
||
|
_Check_return_
|
||
|
_ACRTIMP int __cdecl _getmaxstdio(void);
|
||
|
|
||
|
__DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_0(
|
||
|
char*, gets_s,
|
||
|
char, _Buffer)
|
||
|
|
||
|
_Check_return_
|
||
|
_ACRTIMP int __cdecl _getw(
|
||
|
_Inout_ FILE* _Stream
|
||
|
);
|
||
|
|
||
|
_ACRTIMP void __cdecl perror(
|
||
|
_In_opt_z_ char const* _ErrorMessage
|
||
|
);
|
||
|
|
||
|
#if defined _CRT_USE_WINAPI_FAMILY_DESKTOP_APP
|
||
|
|
||
|
_Success_(return != -1)
|
||
|
_Check_return_opt_
|
||
|
_DCRTIMP int __cdecl _pclose(
|
||
|
_Inout_ FILE* _Stream
|
||
|
);
|
||
|
|
||
|
_Check_return_
|
||
|
_DCRTIMP FILE* __cdecl _popen(
|
||
|
_In_z_ char const* _Command,
|
||
|
_In_z_ char const* _Mode
|
||
|
);
|
||
|
|
||
|
#endif
|
||
|
|
||
|
_Success_(return != EOF)
|
||
|
_Check_return_opt_
|
||
|
_ACRTIMP int __cdecl putc(
|
||
|
_In_ int _Character,
|
||
|
_Inout_ FILE* _Stream
|
||
|
);
|
||
|
|
||
|
_Check_return_opt_
|
||
|
_ACRTIMP int __cdecl putchar(
|
||
|
_In_ int _Character
|
||
|
);
|
||
|
|
||
|
_Check_return_opt_
|
||
|
_ACRTIMP int __cdecl puts(
|
||
|
_In_z_ char const* _Buffer
|
||
|
);
|
||
|
|
||
|
_Success_(return != -1)
|
||
|
_Check_return_opt_
|
||
|
_ACRTIMP int __cdecl _putw(
|
||
|
_In_ int _Word,
|
||
|
_Inout_ FILE* _Stream
|
||
|
);
|
||
|
|
||
|
_ACRTIMP int __cdecl remove(
|
||
|
_In_z_ char const* _FileName
|
||
|
);
|
||
|
|
||
|
_Check_return_
|
||
|
_ACRTIMP int __cdecl rename(
|
||
|
_In_z_ char const* _OldFileName,
|
||
|
_In_z_ char const* _NewFileName
|
||
|
);
|
||
|
|
||
|
_ACRTIMP int __cdecl _unlink(
|
||
|
_In_z_ char const* _FileName
|
||
|
);
|
||
|
|
||
|
#if defined(_CRT_INTERNAL_NONSTDC_NAMES) && _CRT_INTERNAL_NONSTDC_NAMES
|
||
|
|
||
|
_CRT_NONSTDC_DEPRECATE(_unlink)
|
||
|
_ACRTIMP int __cdecl unlink(
|
||
|
_In_z_ char const* _FileName
|
||
|
);
|
||
|
|
||
|
#endif
|
||
|
|
||
|
_ACRTIMP void __cdecl rewind(
|
||
|
_Inout_ FILE* _Stream
|
||
|
);
|
||
|
|
||
|
_Check_return_opt_
|
||
|
_ACRTIMP int __cdecl _rmtmp(void);
|
||
|
|
||
|
_CRT_INSECURE_DEPRECATE(setvbuf)
|
||
|
_ACRTIMP void __cdecl setbuf(
|
||
|
_Inout_ FILE* _Stream,
|
||
|
_Inout_updates_opt_(BUFSIZ) _Post_readable_size_(0) char* _Buffer
|
||
|
);
|
||
|
|
||
|
_Check_return_opt_
|
||
|
_ACRTIMP int __cdecl _setmaxstdio(
|
||
|
_In_ int _Maximum
|
||
|
);
|
||
|
|
||
|
_Success_(return == 0)
|
||
|
_Check_return_opt_
|
||
|
_ACRTIMP int __cdecl setvbuf(
|
||
|
_Inout_ FILE* _Stream,
|
||
|
_Inout_updates_opt_(_Size) char* _Buffer,
|
||
|
_In_ int _Mode,
|
||
|
_In_ size_t _Size
|
||
|
);
|
||
|
|
||
|
#if defined _DEBUG && defined _CRTDBG_MAP_ALLOC
|
||
|
#pragma push_macro("_tempnam")
|
||
|
#undef _tempnam
|
||
|
#endif
|
||
|
|
||
|
_Check_return_
|
||
|
_ACRTIMP _CRTALLOCATOR char* __cdecl _tempnam(
|
||
|
_In_opt_z_ char const* _DirectoryName,
|
||
|
_In_opt_z_ char const* _FilePrefix
|
||
|
);
|
||
|
|
||
|
#if defined _DEBUG && defined _CRTDBG_MAP_ALLOC
|
||
|
#pragma pop_macro("_tempnam")
|
||
|
#endif
|
||
|
|
||
|
_Check_return_ _CRT_INSECURE_DEPRECATE(tmpfile_s)
|
||
|
_ACRTIMP FILE* __cdecl tmpfile(void);
|
||
|
|
||
|
__DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_0(
|
||
|
_Success_(return == 0)
|
||
|
errno_t, tmpnam_s,
|
||
|
_Always_(_Post_z_) char, _Buffer
|
||
|
)
|
||
|
|
||
|
__DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_0(
|
||
|
_Success_(return != 0)
|
||
|
char*, __RETURN_POLICY_DST, _ACRTIMP, tmpnam,
|
||
|
_Pre_maybenull_ _Always_(_Post_z_), char, _Buffer
|
||
|
)
|
||
|
|
||
|
_Success_(return != EOF)
|
||
|
_Check_return_opt_
|
||
|
_ACRTIMP int __cdecl ungetc(
|
||
|
_In_ int _Character,
|
||
|
_Inout_ FILE* _Stream
|
||
|
);
|
||
|
|
||
|
|
||
|
|
||
|
//-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
||
|
//
|
||
|
// I/O Synchronization and _nolock family of I/O functions
|
||
|
//
|
||
|
//-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
||
|
_ACRTIMP void __cdecl _lock_file(
|
||
|
_Inout_ FILE* _Stream
|
||
|
);
|
||
|
|
||
|
_ACRTIMP void __cdecl _unlock_file(
|
||
|
_Inout_ FILE* _Stream
|
||
|
);
|
||
|
|
||
|
_Success_(return != EOF)
|
||
|
_Check_return_opt_
|
||
|
_ACRTIMP int __cdecl _fclose_nolock(
|
||
|
_Inout_ FILE* _Stream
|
||
|
);
|
||
|
|
||
|
_Success_(return != EOF)
|
||
|
_Check_return_opt_
|
||
|
_ACRTIMP int __cdecl _fflush_nolock(
|
||
|
_Inout_opt_ FILE* _Stream
|
||
|
);
|
||
|
|
||
|
_Success_(return != EOF)
|
||
|
_Check_return_opt_
|
||
|
_ACRTIMP int __cdecl _fgetc_nolock(
|
||
|
_Inout_ FILE* _Stream
|
||
|
);
|
||
|
|
||
|
_Success_(return != EOF)
|
||
|
_Check_return_opt_
|
||
|
_ACRTIMP int __cdecl _fputc_nolock(
|
||
|
_In_ int _Character,
|
||
|
_Inout_ FILE* _Stream
|
||
|
);
|
||
|
|
||
|
_Check_return_opt_
|
||
|
_ACRTIMP size_t __cdecl _fread_nolock(
|
||
|
_Out_writes_bytes_(_ElementSize * _ElementCount) void* _Buffer,
|
||
|
_In_ size_t _ElementSize,
|
||
|
_In_ size_t _ElementCount,
|
||
|
_Inout_ FILE* _Stream
|
||
|
);
|
||
|
|
||
|
_Check_return_opt_
|
||
|
_Success_(return != 0)
|
||
|
_ACRTIMP size_t __cdecl _fread_nolock_s(
|
||
|
_Out_writes_bytes_to_(_BufferSize, _ElementSize * _ElementCount) void* _Buffer,
|
||
|
_In_range_(>=, _ElementSize * _ElementCount) size_t _BufferSize,
|
||
|
_In_ size_t _ElementSize,
|
||
|
_In_ size_t _ElementCount,
|
||
|
_Inout_ FILE* _Stream
|
||
|
);
|
||
|
|
||
|
_Check_return_opt_
|
||
|
_ACRTIMP int __cdecl _fseek_nolock(
|
||
|
_Inout_ FILE* _Stream,
|
||
|
_In_ long _Offset,
|
||
|
_In_ int _Origin
|
||
|
);
|
||
|
|
||
|
_Check_return_opt_
|
||
|
_ACRTIMP int __cdecl _fseeki64_nolock(
|
||
|
_Inout_ FILE* _Stream,
|
||
|
_In_ __int64 _Offset,
|
||
|
_In_ int _Origin
|
||
|
);
|
||
|
|
||
|
_Check_return_
|
||
|
_ACRTIMP long __cdecl _ftell_nolock(
|
||
|
_Inout_ FILE* _Stream
|
||
|
);
|
||
|
|
||
|
_Check_return_
|
||
|
_ACRTIMP __int64 __cdecl _ftelli64_nolock(
|
||
|
_Inout_ FILE* _Stream
|
||
|
);
|
||
|
|
||
|
_Check_return_opt_
|
||
|
_ACRTIMP size_t __cdecl _fwrite_nolock(
|
||
|
_In_reads_bytes_(_ElementSize * _ElementCount) void const* _Buffer,
|
||
|
_In_ size_t _ElementSize,
|
||
|
_In_ size_t _ElementCount,
|
||
|
_Inout_ FILE* _Stream
|
||
|
);
|
||
|
|
||
|
_Check_return_opt_
|
||
|
_ACRTIMP int __cdecl _getc_nolock(
|
||
|
_Inout_ FILE* _Stream
|
||
|
);
|
||
|
|
||
|
_Check_return_opt_
|
||
|
_ACRTIMP int __cdecl _putc_nolock(
|
||
|
_In_ int _Character,
|
||
|
_Inout_ FILE* _Stream
|
||
|
);
|
||
|
|
||
|
_Check_return_opt_
|
||
|
_ACRTIMP int __cdecl _ungetc_nolock(
|
||
|
_In_ int _Character,
|
||
|
_Inout_ FILE* _Stream
|
||
|
);
|
||
|
|
||
|
#define _getchar_nolock() _getc_nolock(stdin)
|
||
|
#define _putchar_nolock(_Ch) _putc_nolock(_Ch, stdout)
|
||
|
#define _getwchar_nolock() _getwc_nolock(stdin)
|
||
|
#define _putwchar_nolock(_Ch) _putwc_nolock(_Ch, stdout)
|
||
|
|
||
|
|
||
|
|
||
|
#if defined _CRT_DISABLE_PERFCRIT_LOCKS && !defined _DLL
|
||
|
#define fclose(_Stream) _fclose_nolock(_Stream)
|
||
|
#define fflush(_Stream) _fflush_nolock(_Stream)
|
||
|
#define fgetc(_Stream) _fgetc_nolock(_Stream)
|
||
|
#define fputc(_Ch, _Stream) _fputc_nolock(_Ch, _Stream)
|
||
|
#define fread(_DstBuf, _ElementSize, _Count, _Stream) _fread_nolock(_DstBuf, _ElementSize, _Count, _Stream)
|
||
|
#define fread_s(_DstBuf, _DstSize, _ElementSize, _Count, _Stream) _fread_nolock_s(_DstBuf, _DstSize, _ElementSize, _Count, _Stream)
|
||
|
#define fseek(_Stream, _Offset, _Origin) _fseek_nolock(_Stream, _Offset, _Origin)
|
||
|
#define _fseeki64(_Stream, _Offset, _Origin) _fseeki64_nolock(_Stream, _Offset, _Origin)
|
||
|
#define ftell(_Stream) _ftell_nolock(_Stream)
|
||
|
#define _ftelli64(_Stream) _ftelli64_nolock(_Stream)
|
||
|
#define fwrite(_SrcBuf, _ElementSize, _Count, _Stream) _fwrite_nolock(_SrcBuf, _ElementSize, _Count, _Stream)
|
||
|
#define getc(_Stream) _getc_nolock(_Stream)
|
||
|
#define putc(_Ch, _Stream) _putc_nolock(_Ch, _Stream)
|
||
|
#define ungetc(_Ch, _Stream) _ungetc_nolock(_Ch, _Stream)
|
||
|
#endif
|
||
|
|
||
|
|
||
|
|
||
|
_ACRTIMP int* __cdecl __p__commode(void);
|
||
|
|
||
|
#ifdef _CRT_DECLARE_GLOBAL_VARIABLES_DIRECTLY
|
||
|
extern int _commode;
|
||
|
#else
|
||
|
#define _commode (*__p__commode())
|
||
|
#endif
|
||
|
|
||
|
|
||
|
|
||
|
// Variadic functions are not supported in managed code under /clr
|
||
|
#if defined _M_CEE_MIXED
|
||
|
#pragma managed(push, off)
|
||
|
#endif
|
||
|
|
||
|
//-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
||
|
//
|
||
|
// Narrow Character Formatted Output Functions (Stream)
|
||
|
//
|
||
|
//-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
||
|
_ACRTIMP int __cdecl __stdio_common_vfprintf(
|
||
|
_In_ unsigned __int64 _Options,
|
||
|
_Inout_ FILE* _Stream,
|
||
|
_In_z_ _Printf_format_string_params_(2) char const* _Format,
|
||
|
_In_opt_ _locale_t _Locale,
|
||
|
va_list _ArgList
|
||
|
);
|
||
|
|
||
|
_ACRTIMP int __cdecl __stdio_common_vfprintf_s(
|
||
|
_In_ unsigned __int64 _Options,
|
||
|
_Inout_ FILE* _Stream,
|
||
|
_In_z_ _Printf_format_string_params_(2) char const* _Format,
|
||
|
_In_opt_ _locale_t _Locale,
|
||
|
va_list _ArgList
|
||
|
);
|
||
|
|
||
|
_Success_(return >= 0)
|
||
|
_ACRTIMP int __cdecl __stdio_common_vfprintf_p(
|
||
|
_In_ unsigned __int64 _Options,
|
||
|
_Inout_ FILE* _Stream,
|
||
|
_In_z_ _Printf_format_string_params_(2) char const* _Format,
|
||
|
_In_opt_ _locale_t _Locale,
|
||
|
va_list _ArgList
|
||
|
);
|
||
|
|
||
|
_Check_return_opt_
|
||
|
_CRT_STDIO_INLINE int __CRTDECL _vfprintf_l(
|
||
|
_Inout_ FILE* const _Stream,
|
||
|
_In_z_ char const* const _Format,
|
||
|
_In_opt_ _locale_t const _Locale,
|
||
|
va_list _ArgList
|
||
|
)
|
||
|
#if defined _NO_CRT_STDIO_INLINE
|
||
|
;
|
||
|
#else
|
||
|
{
|
||
|
return __stdio_common_vfprintf(_CRT_INTERNAL_LOCAL_PRINTF_OPTIONS, _Stream, _Format, _Locale, _ArgList);
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
_Check_return_opt_
|
||
|
_CRT_STDIO_INLINE int __CRTDECL vfprintf(
|
||
|
_Inout_ FILE* const _Stream,
|
||
|
_In_z_ _Printf_format_string_ char const* const _Format,
|
||
|
va_list _ArgList
|
||
|
)
|
||
|
#if defined _NO_CRT_STDIO_INLINE
|
||
|
;
|
||
|
#else
|
||
|
{
|
||
|
return _vfprintf_l(_Stream, _Format, NULL, _ArgList);
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
_Check_return_opt_
|
||
|
_CRT_STDIO_INLINE int __CRTDECL _vfprintf_s_l(
|
||
|
_Inout_ FILE* const _Stream,
|
||
|
_In_z_ char const* const _Format,
|
||
|
_In_opt_ _locale_t const _Locale,
|
||
|
va_list _ArgList
|
||
|
)
|
||
|
#if defined _NO_CRT_STDIO_INLINE
|
||
|
;
|
||
|
#else
|
||
|
{
|
||
|
return __stdio_common_vfprintf_s(_CRT_INTERNAL_LOCAL_PRINTF_OPTIONS, _Stream, _Format, _Locale, _ArgList);
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
#if __STDC_WANT_SECURE_LIB__
|
||
|
|
||
|
_Check_return_opt_
|
||
|
_CRT_STDIO_INLINE int __CRTDECL vfprintf_s(
|
||
|
_Inout_ FILE* const _Stream,
|
||
|
_In_z_ _Printf_format_string_ char const* const _Format,
|
||
|
va_list _ArgList
|
||
|
)
|
||
|
#if defined _NO_CRT_STDIO_INLINE
|
||
|
;
|
||
|
#else
|
||
|
{
|
||
|
return _vfprintf_s_l(_Stream, _Format, NULL, _ArgList);
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
#endif
|
||
|
|
||
|
_Check_return_opt_
|
||
|
_CRT_STDIO_INLINE int __CRTDECL _vfprintf_p_l(
|
||
|
_Inout_ FILE* const _Stream,
|
||
|
_In_z_ char const* const _Format,
|
||
|
_In_opt_ _locale_t const _Locale,
|
||
|
va_list _ArgList
|
||
|
)
|
||
|
#if defined _NO_CRT_STDIO_INLINE
|
||
|
;
|
||
|
#else
|
||
|
{
|
||
|
return __stdio_common_vfprintf_p(_CRT_INTERNAL_LOCAL_PRINTF_OPTIONS, _Stream, _Format, _Locale, _ArgList);
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
_Check_return_opt_
|
||
|
_CRT_STDIO_INLINE int __CRTDECL _vfprintf_p(
|
||
|
_Inout_ FILE* const _Stream,
|
||
|
_In_z_ _Printf_format_string_ char const* const _Format,
|
||
|
va_list _ArgList
|
||
|
)
|
||
|
#if defined _NO_CRT_STDIO_INLINE
|
||
|
;
|
||
|
#else
|
||
|
{
|
||
|
return _vfprintf_p_l(_Stream, _Format, NULL, _ArgList);
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
_Check_return_opt_
|
||
|
_CRT_STDIO_INLINE int __CRTDECL _vprintf_l(
|
||
|
_In_z_ _Printf_format_string_params_(2) char const* const _Format,
|
||
|
_In_opt_ _locale_t const _Locale,
|
||
|
va_list _ArgList
|
||
|
)
|
||
|
#if defined _NO_CRT_STDIO_INLINE
|
||
|
;
|
||
|
#else
|
||
|
{
|
||
|
return _vfprintf_l(stdout, _Format, _Locale, _ArgList);
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
_Check_return_opt_
|
||
|
_CRT_STDIO_INLINE int __CRTDECL vprintf(
|
||
|
_In_z_ _Printf_format_string_ char const* const _Format,
|
||
|
va_list _ArgList
|
||
|
)
|
||
|
#if defined _NO_CRT_STDIO_INLINE
|
||
|
;
|
||
|
#else
|
||
|
{
|
||
|
return _vfprintf_l(stdout, _Format, NULL, _ArgList);
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
_Check_return_opt_
|
||
|
_CRT_STDIO_INLINE int __CRTDECL _vprintf_s_l(
|
||
|
_In_z_ _Printf_format_string_params_(2) char const* const _Format,
|
||
|
_In_opt_ _locale_t const _Locale,
|
||
|
va_list _ArgList
|
||
|
)
|
||
|
#if defined _NO_CRT_STDIO_INLINE
|
||
|
;
|
||
|
#else
|
||
|
{
|
||
|
return _vfprintf_s_l(stdout, _Format, _Locale, _ArgList);
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
#if __STDC_WANT_SECURE_LIB__
|
||
|
|
||
|
_Check_return_opt_
|
||
|
_CRT_STDIO_INLINE int __CRTDECL vprintf_s(
|
||
|
_In_z_ _Printf_format_string_ char const* const _Format,
|
||
|
va_list _ArgList
|
||
|
)
|
||
|
#if defined _NO_CRT_STDIO_INLINE
|
||
|
;
|
||
|
#else
|
||
|
{
|
||
|
return _vfprintf_s_l(stdout, _Format, NULL, _ArgList);
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
#endif
|
||
|
|
||
|
_Check_return_opt_
|
||
|
_CRT_STDIO_INLINE int __CRTDECL _vprintf_p_l(
|
||
|
_In_z_ _Printf_format_string_params_(2) char const* const _Format,
|
||
|
_In_opt_ _locale_t const _Locale,
|
||
|
va_list _ArgList
|
||
|
)
|
||
|
#if defined _NO_CRT_STDIO_INLINE
|
||
|
;
|
||
|
#else
|
||
|
{
|
||
|
return _vfprintf_p_l(stdout, _Format, _Locale, _ArgList);
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
_Check_return_opt_
|
||
|
_CRT_STDIO_INLINE int __CRTDECL _vprintf_p(
|
||
|
_In_z_ _Printf_format_string_ char const* const _Format,
|
||
|
va_list _ArgList
|
||
|
)
|
||
|
#if defined _NO_CRT_STDIO_INLINE
|
||
|
;
|
||
|
#else
|
||
|
{
|
||
|
return _vfprintf_p_l(stdout, _Format, NULL, _ArgList);
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
_Check_return_opt_
|
||
|
_CRT_STDIO_INLINE int __CRTDECL _fprintf_l(
|
||
|
_Inout_ FILE* const _Stream,
|
||
|
_In_z_ _Printf_format_string_params_(0) char const* const _Format,
|
||
|
_In_opt_ _locale_t const _Locale,
|
||
|
...)
|
||
|
#if defined _NO_CRT_STDIO_INLINE
|
||
|
;
|
||
|
#else
|
||
|
{
|
||
|
int _Result;
|
||
|
va_list _ArgList;
|
||
|
__crt_va_start(_ArgList, _Locale);
|
||
|
_Result = _vfprintf_l(_Stream, _Format, _Locale, _ArgList);
|
||
|
__crt_va_end(_ArgList);
|
||
|
return _Result;
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
_Check_return_opt_
|
||
|
_CRT_STDIO_INLINE int __CRTDECL fprintf(
|
||
|
_Inout_ FILE* const _Stream,
|
||
|
_In_z_ _Printf_format_string_ char const* const _Format,
|
||
|
...)
|
||
|
#if defined _NO_CRT_STDIO_INLINE
|
||
|
;
|
||
|
#else
|
||
|
{
|
||
|
int _Result;
|
||
|
va_list _ArgList;
|
||
|
__crt_va_start(_ArgList, _Format);
|
||
|
_Result = _vfprintf_l(_Stream, _Format, NULL, _ArgList);
|
||
|
__crt_va_end(_ArgList);
|
||
|
return _Result;
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
_ACRTIMP int __cdecl _set_printf_count_output(
|
||
|
_In_ int _Value
|
||
|
);
|
||
|
|
||
|
_ACRTIMP int __cdecl _get_printf_count_output(void);
|
||
|
|
||
|
_Check_return_opt_
|
||
|
_CRT_STDIO_INLINE int __CRTDECL _fprintf_s_l(
|
||
|
_Inout_ FILE* const _Stream,
|
||
|
_In_z_ _Printf_format_string_params_(0) char const* const _Format,
|
||
|
_In_opt_ _locale_t const _Locale,
|
||
|
...)
|
||
|
#if defined _NO_CRT_STDIO_INLINE
|
||
|
;
|
||
|
#else
|
||
|
{
|
||
|
int _Result;
|
||
|
va_list _ArgList;
|
||
|
__crt_va_start(_ArgList, _Locale);
|
||
|
_Result = _vfprintf_s_l(_Stream, _Format, _Locale, _ArgList);
|
||
|
__crt_va_end(_ArgList);
|
||
|
return _Result;
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
#if __STDC_WANT_SECURE_LIB__
|
||
|
|
||
|
_Check_return_opt_
|
||
|
_CRT_STDIO_INLINE int __CRTDECL fprintf_s(
|
||
|
_Inout_ FILE* const _Stream,
|
||
|
_In_z_ _Printf_format_string_ char const* const _Format,
|
||
|
...)
|
||
|
#if defined _NO_CRT_STDIO_INLINE
|
||
|
;
|
||
|
#else
|
||
|
{
|
||
|
int _Result;
|
||
|
va_list _ArgList;
|
||
|
__crt_va_start(_ArgList, _Format);
|
||
|
_Result = _vfprintf_s_l(_Stream, _Format, NULL, _ArgList);
|
||
|
__crt_va_end(_ArgList);
|
||
|
return _Result;
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
#endif
|
||
|
|
||
|
_Check_return_opt_
|
||
|
_CRT_STDIO_INLINE int __CRTDECL _fprintf_p_l(
|
||
|
_Inout_ FILE* const _Stream,
|
||
|
_In_z_ _Printf_format_string_params_(0) char const* const _Format,
|
||
|
_In_opt_ _locale_t const _Locale,
|
||
|
...)
|
||
|
#if defined _NO_CRT_STDIO_INLINE
|
||
|
;
|
||
|
#else
|
||
|
{
|
||
|
int _Result;
|
||
|
va_list _ArgList;
|
||
|
__crt_va_start(_ArgList, _Locale);
|
||
|
_Result = _vfprintf_p_l(_Stream, _Format, _Locale, _ArgList);
|
||
|
__crt_va_end(_ArgList);
|
||
|
return _Result;
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
_Check_return_opt_
|
||
|
_CRT_STDIO_INLINE int __CRTDECL _fprintf_p(
|
||
|
_Inout_ FILE* const _Stream,
|
||
|
_In_z_ _Printf_format_string_ char const* const _Format,
|
||
|
...)
|
||
|
#if defined _NO_CRT_STDIO_INLINE
|
||
|
;
|
||
|
#else
|
||
|
{
|
||
|
int _Result;
|
||
|
va_list _ArgList;
|
||
|
__crt_va_start(_ArgList, _Format);
|
||
|
_Result = _vfprintf_p_l(_Stream, _Format, NULL, _ArgList);
|
||
|
__crt_va_end(_ArgList);
|
||
|
return _Result;
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
_Check_return_opt_
|
||
|
_CRT_STDIO_INLINE int __CRTDECL _printf_l(
|
||
|
_In_z_ _Printf_format_string_params_(0) char const* const _Format,
|
||
|
_In_opt_ _locale_t const _Locale,
|
||
|
...)
|
||
|
#if defined _NO_CRT_STDIO_INLINE
|
||
|
;
|
||
|
#else
|
||
|
{
|
||
|
int _Result;
|
||
|
va_list _ArgList;
|
||
|
__crt_va_start(_ArgList, _Locale);
|
||
|
_Result = _vfprintf_l(stdout, _Format, _Locale, _ArgList);
|
||
|
__crt_va_end(_ArgList);
|
||
|
return _Result;
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
_Check_return_opt_
|
||
|
_CRT_STDIO_INLINE int __CRTDECL printf(
|
||
|
_In_z_ _Printf_format_string_ char const* const _Format,
|
||
|
...)
|
||
|
#if defined _NO_CRT_STDIO_INLINE
|
||
|
;
|
||
|
#else
|
||
|
{
|
||
|
int _Result;
|
||
|
va_list _ArgList;
|
||
|
__crt_va_start(_ArgList, _Format);
|
||
|
_Result = _vfprintf_l(stdout, _Format, NULL, _ArgList);
|
||
|
__crt_va_end(_ArgList);
|
||
|
return _Result;
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
_Check_return_opt_
|
||
|
_CRT_STDIO_INLINE int __CRTDECL _printf_s_l(
|
||
|
_In_z_ _Printf_format_string_params_(0) char const* const _Format,
|
||
|
_In_opt_ _locale_t const _Locale,
|
||
|
...)
|
||
|
#if defined _NO_CRT_STDIO_INLINE
|
||
|
;
|
||
|
#else
|
||
|
{
|
||
|
int _Result;
|
||
|
va_list _ArgList;
|
||
|
__crt_va_start(_ArgList, _Locale);
|
||
|
_Result = _vfprintf_s_l(stdout, _Format, _Locale, _ArgList);
|
||
|
__crt_va_end(_ArgList);
|
||
|
return _Result;
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
#if __STDC_WANT_SECURE_LIB__
|
||
|
|
||
|
_Check_return_opt_
|
||
|
_CRT_STDIO_INLINE int __CRTDECL printf_s(
|
||
|
_In_z_ _Printf_format_string_ char const* const _Format,
|
||
|
...)
|
||
|
#if defined _NO_CRT_STDIO_INLINE
|
||
|
;
|
||
|
#else
|
||
|
{
|
||
|
int _Result;
|
||
|
va_list _ArgList;
|
||
|
__crt_va_start(_ArgList, _Format);
|
||
|
_Result = _vfprintf_s_l(stdout, _Format, NULL, _ArgList);
|
||
|
__crt_va_end(_ArgList);
|
||
|
return _Result;
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
#endif
|
||
|
|
||
|
_Check_return_opt_
|
||
|
_CRT_STDIO_INLINE int __CRTDECL _printf_p_l(
|
||
|
_In_z_ _Printf_format_string_params_(0) char const* const _Format,
|
||
|
_In_opt_ _locale_t const _Locale,
|
||
|
...)
|
||
|
#if defined _NO_CRT_STDIO_INLINE
|
||
|
;
|
||
|
#else
|
||
|
{
|
||
|
int _Result;
|
||
|
va_list _ArgList;
|
||
|
__crt_va_start(_ArgList, _Locale);
|
||
|
_Result = _vfprintf_p_l(stdout, _Format, _Locale, _ArgList);
|
||
|
__crt_va_end(_ArgList);
|
||
|
return _Result;
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
_Check_return_opt_
|
||
|
_CRT_STDIO_INLINE int __CRTDECL _printf_p(
|
||
|
_In_z_ _Printf_format_string_ char const* const _Format,
|
||
|
...)
|
||
|
#if defined _NO_CRT_STDIO_INLINE
|
||
|
;
|
||
|
#else
|
||
|
{
|
||
|
int _Result;
|
||
|
va_list _ArgList;
|
||
|
__crt_va_start(_ArgList, _Format);
|
||
|
_Result = _vfprintf_p_l(stdout, _Format, NULL, _ArgList);
|
||
|
__crt_va_end(_ArgList);
|
||
|
return _Result;
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
|
||
|
//-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
||
|
//
|
||
|
// Narrow Character Formatted Input Functions (Stream)
|
||
|
//
|
||
|
//-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
||
|
_ACRTIMP int __cdecl __stdio_common_vfscanf(
|
||
|
_In_ unsigned __int64 _Options,
|
||
|
_Inout_ FILE* _Stream,
|
||
|
_In_z_ _Scanf_format_string_params_(2) char const* _Format,
|
||
|
_In_opt_ _locale_t _Locale,
|
||
|
va_list _Arglist
|
||
|
);
|
||
|
|
||
|
_Check_return_opt_
|
||
|
_CRT_STDIO_INLINE int __CRTDECL _vfscanf_l(
|
||
|
_Inout_ FILE* const _Stream,
|
||
|
_In_z_ _Printf_format_string_ char const* const _Format,
|
||
|
_In_opt_ _locale_t const _Locale,
|
||
|
va_list _ArgList
|
||
|
)
|
||
|
#if defined _NO_CRT_STDIO_INLINE
|
||
|
;
|
||
|
#else
|
||
|
{
|
||
|
return __stdio_common_vfscanf(
|
||
|
_CRT_INTERNAL_LOCAL_SCANF_OPTIONS,
|
||
|
_Stream, _Format, _Locale, _ArgList);
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
_Check_return_opt_
|
||
|
_CRT_STDIO_INLINE int __CRTDECL vfscanf(
|
||
|
_Inout_ FILE* const _Stream,
|
||
|
_In_z_ _Printf_format_string_ char const* const _Format,
|
||
|
va_list _ArgList
|
||
|
)
|
||
|
#if defined _NO_CRT_STDIO_INLINE
|
||
|
;
|
||
|
#else
|
||
|
{
|
||
|
return _vfscanf_l(_Stream, _Format, NULL, _ArgList);
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
_Check_return_opt_
|
||
|
_CRT_STDIO_INLINE int __CRTDECL _vfscanf_s_l(
|
||
|
_Inout_ FILE* const _Stream,
|
||
|
_In_z_ _Printf_format_string_ char const* const _Format,
|
||
|
_In_opt_ _locale_t const _Locale,
|
||
|
va_list _ArgList
|
||
|
)
|
||
|
#if defined _NO_CRT_STDIO_INLINE
|
||
|
;
|
||
|
#else
|
||
|
{
|
||
|
return __stdio_common_vfscanf(
|
||
|
_CRT_INTERNAL_LOCAL_SCANF_OPTIONS | _CRT_INTERNAL_SCANF_SECURECRT,
|
||
|
_Stream, _Format, _Locale, _ArgList);
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
|
||
|
#if __STDC_WANT_SECURE_LIB__
|
||
|
|
||
|
_Check_return_opt_
|
||
|
_CRT_STDIO_INLINE int __CRTDECL vfscanf_s(
|
||
|
_Inout_ FILE* const _Stream,
|
||
|
_In_z_ _Printf_format_string_ char const* const _Format,
|
||
|
va_list _ArgList
|
||
|
)
|
||
|
#if defined _NO_CRT_STDIO_INLINE
|
||
|
;
|
||
|
#else
|
||
|
{
|
||
|
return _vfscanf_s_l(_Stream, _Format, NULL, _ArgList);
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
#endif
|
||
|
|
||
|
_Check_return_opt_
|
||
|
_CRT_STDIO_INLINE int __CRTDECL _vscanf_l(
|
||
|
_In_z_ _Printf_format_string_ char const* const _Format,
|
||
|
_In_opt_ _locale_t const _Locale,
|
||
|
va_list _ArgList
|
||
|
)
|
||
|
#if defined _NO_CRT_STDIO_INLINE
|
||
|
;
|
||
|
#else
|
||
|
{
|
||
|
return _vfscanf_l(stdin, _Format, _Locale, _ArgList);
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
_Check_return_opt_
|
||
|
_CRT_STDIO_INLINE int __CRTDECL vscanf(
|
||
|
_In_z_ _Printf_format_string_ char const* const _Format,
|
||
|
va_list _ArgList
|
||
|
)
|
||
|
#if defined _NO_CRT_STDIO_INLINE
|
||
|
;
|
||
|
#else
|
||
|
{
|
||
|
return _vfscanf_l(stdin, _Format, NULL, _ArgList);
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
_Check_return_opt_
|
||
|
_CRT_STDIO_INLINE int __CRTDECL _vscanf_s_l(
|
||
|
_In_z_ _Printf_format_string_ char const* const _Format,
|
||
|
_In_opt_ _locale_t const _Locale,
|
||
|
va_list _ArgList
|
||
|
)
|
||
|
#if defined _NO_CRT_STDIO_INLINE
|
||
|
;
|
||
|
#else
|
||
|
{
|
||
|
return _vfscanf_s_l(stdin, _Format, _Locale, _ArgList);
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
#if __STDC_WANT_SECURE_LIB__
|
||
|
|
||
|
_Check_return_opt_
|
||
|
_CRT_STDIO_INLINE int __CRTDECL vscanf_s(
|
||
|
_In_z_ _Printf_format_string_ char const* const _Format,
|
||
|
va_list _ArgList
|
||
|
)
|
||
|
#if defined _NO_CRT_STDIO_INLINE
|
||
|
;
|
||
|
#else
|
||
|
{
|
||
|
return _vfscanf_s_l(stdin, _Format, NULL, _ArgList);
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
#endif
|
||
|
|
||
|
_Check_return_opt_ _CRT_INSECURE_DEPRECATE(_fscanf_s_l)
|
||
|
_CRT_STDIO_INLINE int __CRTDECL _fscanf_l(
|
||
|
_Inout_ FILE* const _Stream,
|
||
|
_In_z_ _Scanf_format_string_params_(0) char const* const _Format,
|
||
|
_In_opt_ _locale_t const _Locale,
|
||
|
...)
|
||
|
#if defined _NO_CRT_STDIO_INLINE // SCANF
|
||
|
;
|
||
|
#else
|
||
|
{
|
||
|
int _Result;
|
||
|
va_list _ArgList;
|
||
|
__crt_va_start(_ArgList, _Locale);
|
||
|
_Result = _vfscanf_l(_Stream, _Format, _Locale, _ArgList);
|
||
|
__crt_va_end(_ArgList);
|
||
|
return _Result;
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
_Check_return_ _CRT_INSECURE_DEPRECATE(fscanf_s)
|
||
|
_CRT_STDIO_INLINE int __CRTDECL fscanf(
|
||
|
_Inout_ FILE* const _Stream,
|
||
|
_In_z_ _Scanf_format_string_ char const* const _Format,
|
||
|
...)
|
||
|
#if defined _NO_CRT_STDIO_INLINE // SCANF
|
||
|
;
|
||
|
#else
|
||
|
{
|
||
|
int _Result;
|
||
|
va_list _ArgList;
|
||
|
__crt_va_start(_ArgList, _Format);
|
||
|
_Result = _vfscanf_l(_Stream, _Format, NULL, _ArgList);
|
||
|
__crt_va_end(_ArgList);
|
||
|
return _Result;
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
_Check_return_opt_
|
||
|
_CRT_STDIO_INLINE int __CRTDECL _fscanf_s_l(
|
||
|
_Inout_ FILE* const _Stream,
|
||
|
_In_z_ _Scanf_s_format_string_params_(0) char const* const _Format,
|
||
|
_In_opt_ _locale_t const _Locale,
|
||
|
...)
|
||
|
#if defined _NO_CRT_STDIO_INLINE // SCANF
|
||
|
;
|
||
|
#else
|
||
|
{
|
||
|
int _Result;
|
||
|
va_list _ArgList;
|
||
|
__crt_va_start(_ArgList, _Locale);
|
||
|
_Result = _vfscanf_s_l(_Stream, _Format, _Locale, _ArgList);
|
||
|
__crt_va_end(_ArgList);
|
||
|
return _Result;
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
#if __STDC_WANT_SECURE_LIB__
|
||
|
|
||
|
_Check_return_opt_
|
||
|
_CRT_STDIO_INLINE int __CRTDECL fscanf_s(
|
||
|
_Inout_ FILE* const _Stream,
|
||
|
_In_z_ _Scanf_s_format_string_ char const* const _Format,
|
||
|
...)
|
||
|
#if defined _NO_CRT_STDIO_INLINE // SCANF
|
||
|
;
|
||
|
#else
|
||
|
{
|
||
|
int _Result;
|
||
|
va_list _ArgList;
|
||
|
__crt_va_start(_ArgList, _Format);
|
||
|
_Result = _vfscanf_s_l(_Stream, _Format, NULL, _ArgList);
|
||
|
__crt_va_end(_ArgList);
|
||
|
return _Result;
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
#endif
|
||
|
|
||
|
_Check_return_opt_ _CRT_INSECURE_DEPRECATE(_scanf_s_l)
|
||
|
_CRT_STDIO_INLINE int __CRTDECL _scanf_l(
|
||
|
_In_z_ _Scanf_format_string_params_(0) char const* const _Format,
|
||
|
_In_opt_ _locale_t const _Locale,
|
||
|
...)
|
||
|
#if defined _NO_CRT_STDIO_INLINE // SCANF
|
||
|
;
|
||
|
#else
|
||
|
{
|
||
|
int _Result;
|
||
|
va_list _ArgList;
|
||
|
__crt_va_start(_ArgList, _Locale);
|
||
|
_Result = _vfscanf_l(stdin, _Format, _Locale, _ArgList);
|
||
|
__crt_va_end(_ArgList);
|
||
|
return _Result;
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
_Check_return_ _CRT_INSECURE_DEPRECATE(scanf_s)
|
||
|
_CRT_STDIO_INLINE int __CRTDECL scanf(
|
||
|
_In_z_ _Scanf_format_string_ char const* const _Format,
|
||
|
...)
|
||
|
#if defined _NO_CRT_STDIO_INLINE // SCANF
|
||
|
;
|
||
|
#else
|
||
|
{
|
||
|
int _Result;
|
||
|
va_list _ArgList;
|
||
|
__crt_va_start(_ArgList, _Format);
|
||
|
_Result = _vfscanf_l(stdin, _Format, NULL, _ArgList);
|
||
|
__crt_va_end(_ArgList);
|
||
|
return _Result;
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
_Check_return_opt_
|
||
|
_CRT_STDIO_INLINE int __CRTDECL _scanf_s_l(
|
||
|
_In_z_ _Scanf_s_format_string_params_(0) char const* const _Format,
|
||
|
_In_opt_ _locale_t const _Locale,
|
||
|
...)
|
||
|
#if defined _NO_CRT_STDIO_INLINE // SCANF
|
||
|
;
|
||
|
#else
|
||
|
{
|
||
|
int _Result;
|
||
|
va_list _ArgList;
|
||
|
__crt_va_start(_ArgList, _Locale);
|
||
|
_Result = _vfscanf_s_l(stdin, _Format, _Locale, _ArgList);
|
||
|
__crt_va_end(_ArgList);
|
||
|
return _Result;
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
#if __STDC_WANT_SECURE_LIB__
|
||
|
|
||
|
_Check_return_opt_
|
||
|
_CRT_STDIO_INLINE int __CRTDECL scanf_s(
|
||
|
_In_z_ _Scanf_s_format_string_ char const* const _Format,
|
||
|
...)
|
||
|
#if defined _NO_CRT_STDIO_INLINE // SCANF
|
||
|
;
|
||
|
#else
|
||
|
{
|
||
|
int _Result;
|
||
|
va_list _ArgList;
|
||
|
__crt_va_start(_ArgList, _Format);
|
||
|
_Result = _vfscanf_s_l(stdin, _Format, NULL, _ArgList);
|
||
|
__crt_va_end(_ArgList);
|
||
|
return _Result;
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
#endif
|
||
|
|
||
|
|
||
|
|
||
|
//-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
||
|
//
|
||
|
// Narrow Character Formatted Output Functions (String)
|
||
|
//
|
||
|
//-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
||
|
_Success_(return >= 0)
|
||
|
_ACRTIMP int __cdecl __stdio_common_vsprintf(
|
||
|
_In_ unsigned __int64 _Options,
|
||
|
_Out_writes_opt_z_(_BufferCount) char* _Buffer,
|
||
|
_In_ size_t _BufferCount,
|
||
|
_In_z_ _Printf_format_string_params_(2) char const* _Format,
|
||
|
_In_opt_ _locale_t _Locale,
|
||
|
va_list _ArgList
|
||
|
);
|
||
|
|
||
|
_Success_(return >= 0)
|
||
|
_ACRTIMP int __cdecl __stdio_common_vsprintf_s(
|
||
|
_In_ unsigned __int64 _Options,
|
||
|
_Out_writes_z_(_BufferCount) char* _Buffer,
|
||
|
_In_ size_t _BufferCount,
|
||
|
_In_z_ _Printf_format_string_params_(2) char const* _Format,
|
||
|
_In_opt_ _locale_t _Locale,
|
||
|
va_list _ArgList
|
||
|
);
|
||
|
|
||
|
_Success_(return >= 0)
|
||
|
_ACRTIMP int __cdecl __stdio_common_vsnprintf_s(
|
||
|
_In_ unsigned __int64 _Options,
|
||
|
_Out_writes_opt_z_(_BufferCount) char* _Buffer,
|
||
|
_In_ size_t _BufferCount,
|
||
|
_In_ size_t _MaxCount,
|
||
|
_In_z_ _Printf_format_string_params_(2) char const* _Format,
|
||
|
_In_opt_ _locale_t _Locale,
|
||
|
va_list _ArgList
|
||
|
);
|
||
|
|
||
|
_Success_(return >= 0)
|
||
|
_ACRTIMP int __cdecl __stdio_common_vsprintf_p(
|
||
|
_In_ unsigned __int64 _Options,
|
||
|
_Out_writes_z_(_BufferCount) char* _Buffer,
|
||
|
_In_ size_t _BufferCount,
|
||
|
_In_z_ _Printf_format_string_params_(2) char const* _Format,
|
||
|
_In_opt_ _locale_t _Locale,
|
||
|
va_list _ArgList
|
||
|
);
|
||
|
|
||
|
_Success_(return >= 0)
|
||
|
_Check_return_opt_ _CRT_INSECURE_DEPRECATE(_vsnprintf_s_l)
|
||
|
_CRT_STDIO_INLINE int __CRTDECL _vsnprintf_l(
|
||
|
_Out_writes_opt_(_BufferCount) _Post_maybez_ char* const _Buffer,
|
||
|
_In_ size_t const _BufferCount,
|
||
|
_In_z_ _Printf_format_string_params_(2) char const* const _Format,
|
||
|
_In_opt_ _locale_t const _Locale,
|
||
|
va_list _ArgList
|
||
|
)
|
||
|
#if defined _NO_CRT_STDIO_INLINE
|
||
|
;
|
||
|
#else
|
||
|
{
|
||
|
int const _Result = __stdio_common_vsprintf(
|
||
|
_CRT_INTERNAL_LOCAL_PRINTF_OPTIONS | _CRT_INTERNAL_PRINTF_LEGACY_VSPRINTF_NULL_TERMINATION,
|
||
|
_Buffer, _BufferCount, _Format, _Locale, _ArgList);
|
||
|
|
||
|
return _Result < 0 ? -1 : _Result;
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
_Success_(return >= 0)
|
||
|
_Check_return_opt_
|
||
|
_CRT_STDIO_INLINE int __CRTDECL _vsnprintf(
|
||
|
_Out_writes_opt_(_BufferCount) _Post_maybez_ char* const _Buffer,
|
||
|
_In_ size_t const _BufferCount,
|
||
|
_In_z_ _Printf_format_string_ char const* const _Format,
|
||
|
va_list _ArgList
|
||
|
)
|
||
|
#if defined _NO_CRT_STDIO_INLINE
|
||
|
;
|
||
|
#else
|
||
|
{
|
||
|
return _vsnprintf_l(_Buffer, _BufferCount, _Format, NULL, _ArgList);
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
#if defined vsnprintf
|
||
|
// This definition of vsnprintf will generate "warning C4005: 'vsnprintf': macro
|
||
|
// redefinition" with a subsequent line indicating where the previous definition
|
||
|
// of vsnprintf was. This makes it easier to find where vsnprintf was defined.
|
||
|
#pragma warning(push, 1)
|
||
|
#pragma warning(1: 4005) // macro redefinition
|
||
|
#define vsnprintf Do not define vsnprintf as a macro
|
||
|
#pragma warning(pop)
|
||
|
#error Macro definition of vsnprintf conflicts with Standard Library function declaration
|
||
|
#endif
|
||
|
|
||
|
_Success_(return >= 0)
|
||
|
_Check_return_opt_
|
||
|
_CRT_STDIO_INLINE int __CRTDECL vsnprintf(
|
||
|
_Out_writes_opt_(_BufferCount) _Always_(_Post_z_) char* const _Buffer,
|
||
|
_In_ size_t const _BufferCount,
|
||
|
_In_z_ _Printf_format_string_ char const* const _Format,
|
||
|
va_list _ArgList
|
||
|
)
|
||
|
#if defined _NO_CRT_STDIO_INLINE
|
||
|
;
|
||
|
#else
|
||
|
{
|
||
|
int const _Result = __stdio_common_vsprintf(
|
||
|
_CRT_INTERNAL_LOCAL_PRINTF_OPTIONS | _CRT_INTERNAL_PRINTF_STANDARD_SNPRINTF_BEHAVIOR,
|
||
|
_Buffer, _BufferCount, _Format, NULL, _ArgList);
|
||
|
|
||
|
return _Result < 0 ? -1 : _Result;
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
_Success_(return >= 0)
|
||
|
_Check_return_opt_ _CRT_INSECURE_DEPRECATE(_vsprintf_s_l)
|
||
|
_CRT_STDIO_INLINE int __CRTDECL _vsprintf_l(
|
||
|
_Pre_notnull_ _Always_(_Post_z_) char* const _Buffer,
|
||
|
_In_z_ char const* const _Format,
|
||
|
_In_opt_ _locale_t const _Locale,
|
||
|
va_list _ArgList
|
||
|
)
|
||
|
#if defined _NO_CRT_STDIO_INLINE
|
||
|
;
|
||
|
#else
|
||
|
{
|
||
|
return _vsnprintf_l(_Buffer, (size_t)-1, _Format, _Locale, _ArgList);
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
_Success_(return >= 0)
|
||
|
_Check_return_opt_ _CRT_INSECURE_DEPRECATE(vsprintf_s)
|
||
|
_CRT_STDIO_INLINE int __CRTDECL vsprintf(
|
||
|
_Pre_notnull_ _Always_(_Post_z_) char* const _Buffer,
|
||
|
_In_z_ _Printf_format_string_ char const* const _Format,
|
||
|
va_list _ArgList
|
||
|
)
|
||
|
#if defined _NO_CRT_STDIO_INLINE
|
||
|
;
|
||
|
#else
|
||
|
{
|
||
|
return _vsnprintf_l(_Buffer, (size_t)-1, _Format, NULL, _ArgList);
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
_Success_(return >= 0)
|
||
|
_Check_return_opt_
|
||
|
_CRT_STDIO_INLINE int __CRTDECL _vsprintf_s_l(
|
||
|
_Out_writes_(_BufferCount) _Always_(_Post_z_) char* const _Buffer,
|
||
|
_In_ size_t const _BufferCount,
|
||
|
_In_z_ _Printf_format_string_params_(2) char const* const _Format,
|
||
|
_In_opt_ _locale_t const _Locale,
|
||
|
va_list _ArgList
|
||
|
)
|
||
|
#if defined _NO_CRT_STDIO_INLINE
|
||
|
;
|
||
|
#else
|
||
|
{
|
||
|
int const _Result = __stdio_common_vsprintf_s(
|
||
|
_CRT_INTERNAL_LOCAL_PRINTF_OPTIONS,
|
||
|
_Buffer, _BufferCount, _Format, _Locale, _ArgList);
|
||
|
|
||
|
return _Result < 0 ? -1 : _Result;
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
#if __STDC_WANT_SECURE_LIB__
|
||
|
|
||
|
_Success_(return >= 0)
|
||
|
_Check_return_opt_
|
||
|
_CRT_STDIO_INLINE int __CRTDECL vsprintf_s(
|
||
|
_Out_writes_(_BufferCount) _Always_(_Post_z_) char* const _Buffer,
|
||
|
_In_ size_t const _BufferCount,
|
||
|
_In_z_ _Printf_format_string_ char const* const _Format,
|
||
|
va_list _ArgList
|
||
|
)
|
||
|
#if defined _NO_CRT_STDIO_INLINE
|
||
|
;
|
||
|
#else
|
||
|
{
|
||
|
return _vsprintf_s_l(_Buffer, _BufferCount, _Format, NULL, _ArgList);
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
__DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_2(
|
||
|
_Success_(return >= 0)
|
||
|
int, vsprintf_s,
|
||
|
_Always_(_Post_z_) char, _Buffer,
|
||
|
_In_z_ _Printf_format_string_ char const*, _Format,
|
||
|
va_list, _ArgList
|
||
|
)
|
||
|
|
||
|
#endif
|
||
|
|
||
|
_Success_(return >= 0)
|
||
|
_Check_return_opt_
|
||
|
_CRT_STDIO_INLINE int __CRTDECL _vsprintf_p_l(
|
||
|
_Out_writes_(_BufferCount) _Always_(_Post_z_) char* const _Buffer,
|
||
|
_In_ size_t const _BufferCount,
|
||
|
_In_z_ _Printf_format_string_params_(2) char const* const _Format,
|
||
|
_In_opt_ _locale_t const _Locale,
|
||
|
va_list _ArgList
|
||
|
)
|
||
|
#if defined _NO_CRT_STDIO_INLINE
|
||
|
;
|
||
|
#else
|
||
|
{
|
||
|
int const _Result = __stdio_common_vsprintf_p(
|
||
|
_CRT_INTERNAL_LOCAL_PRINTF_OPTIONS,
|
||
|
_Buffer, _BufferCount, _Format, _Locale, _ArgList);
|
||
|
|
||
|
return _Result < 0 ? -1 : _Result;
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
_Success_(return >= 0)
|
||
|
_Check_return_opt_
|
||
|
_CRT_STDIO_INLINE int __CRTDECL _vsprintf_p(
|
||
|
_Out_writes_(_BufferCount) _Always_(_Post_z_) char* const _Buffer,
|
||
|
_In_ size_t const _BufferCount,
|
||
|
_In_z_ _Printf_format_string_ char const* const _Format,
|
||
|
va_list _ArgList
|
||
|
)
|
||
|
#if defined _NO_CRT_STDIO_INLINE
|
||
|
;
|
||
|
#else
|
||
|
{
|
||
|
return _vsprintf_p_l(_Buffer, _BufferCount, _Format, NULL, _ArgList);
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
_Success_(return >= 0)
|
||
|
_Check_return_opt_
|
||
|
_CRT_STDIO_INLINE int __CRTDECL _vsnprintf_s_l(
|
||
|
_Out_writes_opt_(_BufferCount) _Always_(_Post_z_) char* const _Buffer,
|
||
|
_In_ size_t const _BufferCount,
|
||
|
_In_ size_t const _MaxCount,
|
||
|
_In_z_ _Printf_format_string_params_(2) char const* const _Format,
|
||
|
_In_opt_ _locale_t const _Locale,
|
||
|
va_list _ArgList
|
||
|
)
|
||
|
#if defined _NO_CRT_STDIO_INLINE
|
||
|
;
|
||
|
#else
|
||
|
{
|
||
|
int const _Result = __stdio_common_vsnprintf_s(
|
||
|
_CRT_INTERNAL_LOCAL_PRINTF_OPTIONS,
|
||
|
_Buffer, _BufferCount, _MaxCount, _Format, _Locale, _ArgList);
|
||
|
|
||
|
return _Result < 0 ? -1 : _Result;
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
_Success_(return >= 0)
|
||
|
_Check_return_opt_
|
||
|
_CRT_STDIO_INLINE int __CRTDECL _vsnprintf_s(
|
||
|
_Out_writes_opt_(_BufferCount) _Always_(_Post_z_) char* const _Buffer,
|
||
|
_In_ size_t const _BufferCount,
|
||
|
_In_ size_t const _MaxCount,
|
||
|
_In_z_ _Printf_format_string_ char const* const _Format,
|
||
|
va_list _ArgList
|
||
|
)
|
||
|
#if defined _NO_CRT_STDIO_INLINE
|
||
|
;
|
||
|
#else
|
||
|
{
|
||
|
return _vsnprintf_s_l(_Buffer, _BufferCount, _MaxCount, _Format, NULL, _ArgList);
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
__DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_3(
|
||
|
_Success_(return >= 0)
|
||
|
int, _vsnprintf_s,
|
||
|
_Always_(_Post_z_) char, _Buffer,
|
||
|
_In_ size_t, _BufferCount,
|
||
|
_In_z_ _Printf_format_string_ char const*, _Format,
|
||
|
va_list, _ArgList
|
||
|
)
|
||
|
|
||
|
#if __STDC_WANT_SECURE_LIB__
|
||
|
|
||
|
_Success_(return >= 0)
|
||
|
_Check_return_opt_
|
||
|
_CRT_STDIO_INLINE int __CRTDECL vsnprintf_s(
|
||
|
_Out_writes_opt_(_BufferCount) _Always_(_Post_z_) char* const _Buffer,
|
||
|
_In_ size_t const _BufferCount,
|
||
|
_In_ size_t const _MaxCount,
|
||
|
_In_z_ _Printf_format_string_ char const* const _Format,
|
||
|
va_list _ArgList
|
||
|
)
|
||
|
#if defined _NO_CRT_STDIO_INLINE
|
||
|
;
|
||
|
#else
|
||
|
{
|
||
|
return _vsnprintf_s_l(_Buffer, _BufferCount, _MaxCount, _Format, NULL, _ArgList);
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
__DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_3(
|
||
|
_Success_(return >= 0)
|
||
|
int, vsnprintf_s,
|
||
|
_Always_(_Post_z_) char, _Buffer,
|
||
|
_In_ size_t, _BufferCount,
|
||
|
_In_z_ _Printf_format_string_ char const*, _Format,
|
||
|
va_list, _ArgList
|
||
|
)
|
||
|
|
||
|
#endif
|
||
|
|
||
|
_Check_return_opt_
|
||
|
_CRT_STDIO_INLINE int __CRTDECL _vscprintf_l(
|
||
|
_In_z_ _Printf_format_string_params_(2) char const* const _Format,
|
||
|
_In_opt_ _locale_t const _Locale,
|
||
|
va_list _ArgList
|
||
|
)
|
||
|
#if defined _NO_CRT_STDIO_INLINE
|
||
|
;
|
||
|
#else
|
||
|
{
|
||
|
int const _Result = __stdio_common_vsprintf(
|
||
|
_CRT_INTERNAL_LOCAL_PRINTF_OPTIONS | _CRT_INTERNAL_PRINTF_STANDARD_SNPRINTF_BEHAVIOR,
|
||
|
NULL, 0, _Format, _Locale, _ArgList);
|
||
|
|
||
|
return _Result < 0 ? -1 : _Result;
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
_Check_return_
|
||
|
_CRT_STDIO_INLINE int __CRTDECL _vscprintf(
|
||
|
_In_z_ _Printf_format_string_ char const* const _Format,
|
||
|
va_list _ArgList
|
||
|
)
|
||
|
#if defined _NO_CRT_STDIO_INLINE
|
||
|
;
|
||
|
#else
|
||
|
{
|
||
|
return _vscprintf_l(_Format, NULL, _ArgList);
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
_Check_return_opt_
|
||
|
_CRT_STDIO_INLINE int __CRTDECL _vscprintf_p_l(
|
||
|
_In_z_ _Printf_format_string_params_(2) char const* const _Format,
|
||
|
_In_opt_ _locale_t const _Locale,
|
||
|
va_list _ArgList
|
||
|
)
|
||
|
#if defined _NO_CRT_STDIO_INLINE
|
||
|
;
|
||
|
#else
|
||
|
{
|
||
|
int const _Result = __stdio_common_vsprintf_p(
|
||
|
_CRT_INTERNAL_LOCAL_PRINTF_OPTIONS | _CRT_INTERNAL_PRINTF_STANDARD_SNPRINTF_BEHAVIOR,
|
||
|
NULL, 0, _Format, _Locale, _ArgList);
|
||
|
|
||
|
return _Result < 0 ? -1 : _Result;
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
_Check_return_
|
||
|
_CRT_STDIO_INLINE int __CRTDECL _vscprintf_p(
|
||
|
_In_z_ _Printf_format_string_ char const* const _Format,
|
||
|
va_list _ArgList
|
||
|
)
|
||
|
#if defined _NO_CRT_STDIO_INLINE
|
||
|
;
|
||
|
#else
|
||
|
{
|
||
|
return _vscprintf_p_l(_Format, NULL, _ArgList);
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
_Check_return_opt_
|
||
|
_CRT_STDIO_INLINE int __CRTDECL _vsnprintf_c_l(
|
||
|
_Out_writes_opt_(_BufferCount) char* const _Buffer,
|
||
|
_In_ size_t const _BufferCount,
|
||
|
_In_z_ _Printf_format_string_params_(2) char const* const _Format,
|
||
|
_In_opt_ _locale_t const _Locale,
|
||
|
va_list _ArgList
|
||
|
)
|
||
|
#if defined _NO_CRT_STDIO_INLINE
|
||
|
;
|
||
|
#else
|
||
|
{
|
||
|
int const _Result = __stdio_common_vsprintf(
|
||
|
_CRT_INTERNAL_LOCAL_PRINTF_OPTIONS,
|
||
|
_Buffer, _BufferCount, _Format, _Locale, _ArgList);
|
||
|
|
||
|
return _Result < 0 ? -1 : _Result;
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
_Success_(return >= 0)
|
||
|
_Check_return_opt_
|
||
|
_CRT_STDIO_INLINE int __CRTDECL _vsnprintf_c(
|
||
|
_Out_writes_opt_(_BufferCount) char* const _Buffer,
|
||
|
_In_ size_t const _BufferCount,
|
||
|
_In_z_ _Printf_format_string_ char const* const _Format,
|
||
|
va_list _ArgList
|
||
|
)
|
||
|
#if defined _NO_CRT_STDIO_INLINE
|
||
|
;
|
||
|
#else
|
||
|
{
|
||
|
return _vsnprintf_c_l(_Buffer, _BufferCount, _Format, NULL, _ArgList);
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
_Success_(return >= 0)
|
||
|
_Check_return_opt_ _CRT_INSECURE_DEPRECATE(_sprintf_s_l)
|
||
|
_CRT_STDIO_INLINE int __CRTDECL _sprintf_l(
|
||
|
_Pre_notnull_ _Always_(_Post_z_) char* const _Buffer,
|
||
|
_In_z_ _Printf_format_string_params_(0) char const* const _Format,
|
||
|
_In_opt_ _locale_t const _Locale,
|
||
|
...)
|
||
|
#if defined _NO_CRT_STDIO_INLINE
|
||
|
;
|
||
|
#else
|
||
|
{
|
||
|
int _Result;
|
||
|
va_list _ArgList;
|
||
|
__crt_va_start(_ArgList, _Locale);
|
||
|
|
||
|
_Result = _vsprintf_l(_Buffer, _Format, _Locale, _ArgList);
|
||
|
|
||
|
__crt_va_end(_ArgList);
|
||
|
return _Result;
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
_Success_(return >= 0)
|
||
|
_Check_return_opt_
|
||
|
_CRT_STDIO_INLINE int __CRTDECL sprintf(
|
||
|
_Pre_notnull_ _Always_(_Post_z_) char* const _Buffer,
|
||
|
_In_z_ _Printf_format_string_ char const* const _Format,
|
||
|
...)
|
||
|
#if defined _NO_CRT_STDIO_INLINE
|
||
|
;
|
||
|
#else
|
||
|
{
|
||
|
int _Result;
|
||
|
va_list _ArgList;
|
||
|
__crt_va_start(_ArgList, _Format);
|
||
|
|
||
|
_Result = _vsprintf_l(_Buffer, _Format, NULL, _ArgList);
|
||
|
|
||
|
__crt_va_end(_ArgList);
|
||
|
return _Result;
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
__DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_1_ARGLIST(
|
||
|
_Success_(return >= 0)
|
||
|
int, __RETURN_POLICY_SAME, __EMPTY_DECLSPEC, __CRTDECL, sprintf, vsprintf,
|
||
|
_Pre_notnull_ _Always_(_Post_z_), char, _Buffer,
|
||
|
_In_z_ _Printf_format_string_ char const*, _Format
|
||
|
)
|
||
|
|
||
|
_Success_(return >= 0)
|
||
|
_Check_return_opt_
|
||
|
_CRT_STDIO_INLINE int __CRTDECL _sprintf_s_l(
|
||
|
_Out_writes_(_BufferCount) _Always_(_Post_z_) char* const _Buffer,
|
||
|
_In_ size_t const _BufferCount,
|
||
|
_In_z_ _Printf_format_string_params_(0) char const* const _Format,
|
||
|
_In_opt_ _locale_t const _Locale,
|
||
|
...)
|
||
|
#if defined _NO_CRT_STDIO_INLINE
|
||
|
;
|
||
|
#else
|
||
|
{
|
||
|
int _Result;
|
||
|
va_list _ArgList;
|
||
|
__crt_va_start(_ArgList, _Locale);
|
||
|
_Result = _vsprintf_s_l(_Buffer, _BufferCount, _Format, _Locale, _ArgList);
|
||
|
__crt_va_end(_ArgList);
|
||
|
return _Result;
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
#if __STDC_WANT_SECURE_LIB__
|
||
|
|
||
|
_Success_(return >= 0)
|
||
|
_Check_return_opt_
|
||
|
_CRT_STDIO_INLINE int __CRTDECL sprintf_s(
|
||
|
_Out_writes_(_BufferCount) _Always_(_Post_z_) char* const _Buffer,
|
||
|
_In_ size_t const _BufferCount,
|
||
|
_In_z_ _Printf_format_string_ char const* const _Format,
|
||
|
...)
|
||
|
#if defined _NO_CRT_STDIO_INLINE
|
||
|
;
|
||
|
#else
|
||
|
{
|
||
|
int _Result;
|
||
|
va_list _ArgList;
|
||
|
__crt_va_start(_ArgList, _Format);
|
||
|
_Result = _vsprintf_s_l(_Buffer, _BufferCount, _Format, NULL, _ArgList);
|
||
|
__crt_va_end(_ArgList);
|
||
|
return _Result;
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
#endif
|
||
|
|
||
|
__DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_1_ARGLIST(
|
||
|
_Success_(return >= 0)
|
||
|
int, sprintf_s, vsprintf_s,
|
||
|
_Always_(_Post_z_) char, _Buffer,
|
||
|
_In_z_ _Printf_format_string_ char const*, _Format
|
||
|
)
|
||
|
|
||
|
_Success_(return >= 0)
|
||
|
_Check_return_opt_
|
||
|
_CRT_STDIO_INLINE int __CRTDECL _sprintf_p_l(
|
||
|
_Out_writes_(_BufferCount) _Always_(_Post_z_) char* const _Buffer,
|
||
|
_In_ size_t const _BufferCount,
|
||
|
_In_z_ _Printf_format_string_params_(0) char const* const _Format,
|
||
|
_In_opt_ _locale_t const _Locale,
|
||
|
...)
|
||
|
#if defined _NO_CRT_STDIO_INLINE
|
||
|
;
|
||
|
#else
|
||
|
{
|
||
|
int _Result;
|
||
|
va_list _ArgList;
|
||
|
__crt_va_start(_ArgList, _Locale);
|
||
|
_Result = _vsprintf_p_l(_Buffer, _BufferCount, _Format, _Locale, _ArgList);
|
||
|
__crt_va_end(_ArgList);
|
||
|
return _Result;
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
_Success_(return >= 0)
|
||
|
_Check_return_opt_
|
||
|
_CRT_STDIO_INLINE int __CRTDECL _sprintf_p(
|
||
|
_Out_writes_(_BufferCount) _Always_(_Post_z_) char* const _Buffer,
|
||
|
_In_ size_t const _BufferCount,
|
||
|
_In_z_ _Printf_format_string_ char const* const _Format,
|
||
|
...)
|
||
|
#if defined _NO_CRT_STDIO_INLINE
|
||
|
;
|
||
|
#else
|
||
|
{
|
||
|
int _Result;
|
||
|
va_list _ArgList;
|
||
|
__crt_va_start(_ArgList, _Format);
|
||
|
_Result = _vsprintf_p_l(_Buffer, _BufferCount, _Format, NULL, _ArgList);
|
||
|
__crt_va_end(_ArgList);
|
||
|
return _Result;
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
_Success_(return >= 0)
|
||
|
_Check_return_opt_ _CRT_INSECURE_DEPRECATE(_snprintf_s_l)
|
||
|
_CRT_STDIO_INLINE int __CRTDECL _snprintf_l(
|
||
|
_Out_writes_opt_(_BufferCount) _Post_maybez_ char* const _Buffer,
|
||
|
_In_ size_t const _BufferCount,
|
||
|
_In_z_ _Printf_format_string_params_(0) char const* const _Format,
|
||
|
_In_opt_ _locale_t const _Locale,
|
||
|
...)
|
||
|
#if defined _NO_CRT_STDIO_INLINE
|
||
|
;
|
||
|
#else
|
||
|
{
|
||
|
int _Result;
|
||
|
va_list _ArgList;
|
||
|
__crt_va_start(_ArgList, _Locale);
|
||
|
|
||
|
_Result = _vsnprintf_l(_Buffer, _BufferCount, _Format, _Locale, _ArgList);
|
||
|
|
||
|
__crt_va_end(_ArgList);
|
||
|
return _Result;
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
#if defined snprintf
|
||
|
// This definition of snprintf will generate "warning C4005: 'snprintf': macro
|
||
|
// redefinition" with a subsequent line indicating where the previous definition
|
||
|
// of snprintf was. This makes it easier to find where snprintf was defined.
|
||
|
#pragma warning(push, 1)
|
||
|
#pragma warning(1: 4005) // macro redefinition
|
||
|
#define snprintf Do not define snprintf as a macro
|
||
|
#pragma warning(pop)
|
||
|
#error Macro definition of snprintf conflicts with Standard Library function declaration
|
||
|
#endif
|
||
|
|
||
|
_Success_(return >= 0)
|
||
|
_Check_return_opt_
|
||
|
_CRT_STDIO_INLINE int __CRTDECL snprintf(
|
||
|
_Out_writes_opt_(_BufferCount) _Always_(_Post_z_) char* const _Buffer,
|
||
|
_In_ size_t const _BufferCount,
|
||
|
_In_z_ _Printf_format_string_ char const* const _Format,
|
||
|
...)
|
||
|
#if defined _NO_CRT_STDIO_INLINE
|
||
|
;
|
||
|
#else
|
||
|
{
|
||
|
int _Result;
|
||
|
va_list _ArgList;
|
||
|
__crt_va_start(_ArgList, _Format);
|
||
|
_Result = vsnprintf(_Buffer, _BufferCount, _Format, _ArgList);
|
||
|
__crt_va_end(_ArgList);
|
||
|
return _Result;
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
_Success_(return >= 0)
|
||
|
_Check_return_opt_
|
||
|
_CRT_STDIO_INLINE int __CRTDECL _snprintf(
|
||
|
_Out_writes_opt_(_BufferCount) _Post_maybez_ char* const _Buffer,
|
||
|
_In_ size_t const _BufferCount,
|
||
|
_In_z_ _Printf_format_string_ char const* const _Format,
|
||
|
...)
|
||
|
#if defined _NO_CRT_STDIO_INLINE
|
||
|
;
|
||
|
#else
|
||
|
{
|
||
|
int _Result;
|
||
|
va_list _ArgList;
|
||
|
__crt_va_start(_ArgList, _Format);
|
||
|
_Result = _vsnprintf(_Buffer, _BufferCount, _Format, _ArgList);
|
||
|
__crt_va_end(_ArgList);
|
||
|
return _Result;
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
__DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_2_ARGLIST_EX(
|
||
|
_Success_(return >= 0)
|
||
|
int, __RETURN_POLICY_SAME, __EMPTY_DECLSPEC, __CRTDECL, _snprintf, _vsnprintf,
|
||
|
_Pre_notnull_ _Post_maybez_ char,
|
||
|
_Out_writes_opt_(_BufferCount) _Post_maybez_, char, _Buffer,
|
||
|
_In_ size_t, _BufferCount,
|
||
|
_In_z_ _Printf_format_string_ char const*, _Format
|
||
|
)
|
||
|
|
||
|
_Success_(return >= 0)
|
||
|
_Check_return_opt_
|
||
|
_CRT_STDIO_INLINE int __CRTDECL _snprintf_c_l(
|
||
|
_Out_writes_opt_(_BufferCount) char* const _Buffer,
|
||
|
_In_ size_t const _BufferCount,
|
||
|
_In_z_ _Printf_format_string_params_(0) char const* const _Format,
|
||
|
_In_opt_ _locale_t const _Locale,
|
||
|
...)
|
||
|
#if defined _NO_CRT_STDIO_INLINE
|
||
|
;
|
||
|
#else
|
||
|
{
|
||
|
int _Result;
|
||
|
va_list _ArgList;
|
||
|
__crt_va_start(_ArgList, _Locale);
|
||
|
_Result = _vsnprintf_c_l(_Buffer, _BufferCount, _Format, _Locale, _ArgList);
|
||
|
__crt_va_end(_ArgList);
|
||
|
return _Result;
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
_Success_(return >= 0)
|
||
|
_Check_return_opt_
|
||
|
_CRT_STDIO_INLINE int __CRTDECL _snprintf_c(
|
||
|
_Out_writes_opt_(_BufferCount) char* const _Buffer,
|
||
|
_In_ size_t const _BufferCount,
|
||
|
_In_z_ _Printf_format_string_ char const* const _Format,
|
||
|
...)
|
||
|
#if defined _NO_CRT_STDIO_INLINE
|
||
|
;
|
||
|
#else
|
||
|
{
|
||
|
int _Result;
|
||
|
va_list _ArgList;
|
||
|
__crt_va_start(_ArgList, _Format);
|
||
|
_Result = _vsnprintf_c_l(_Buffer, _BufferCount, _Format, NULL, _ArgList);
|
||
|
__crt_va_end(_ArgList);
|
||
|
return _Result;
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
_Success_(return >= 0)
|
||
|
_Check_return_opt_
|
||
|
_CRT_STDIO_INLINE int __CRTDECL _snprintf_s_l(
|
||
|
_Out_writes_opt_(_BufferCount) _Always_(_Post_z_) char* const _Buffer,
|
||
|
_In_ size_t const _BufferCount,
|
||
|
_In_ size_t const _MaxCount,
|
||
|
_In_z_ _Printf_format_string_params_(0) char const* const _Format,
|
||
|
_In_opt_ _locale_t const _Locale,
|
||
|
...)
|
||
|
#if defined _NO_CRT_STDIO_INLINE
|
||
|
;
|
||
|
#else
|
||
|
{
|
||
|
int _Result;
|
||
|
va_list _ArgList;
|
||
|
__crt_va_start(_ArgList, _Locale);
|
||
|
_Result = _vsnprintf_s_l(_Buffer, _BufferCount, _MaxCount, _Format, _Locale, _ArgList);
|
||
|
__crt_va_end(_ArgList);
|
||
|
return _Result;
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
_Success_(return >= 0)
|
||
|
_Check_return_opt_
|
||
|
_CRT_STDIO_INLINE int __CRTDECL _snprintf_s(
|
||
|
_Out_writes_opt_(_BufferCount) _Always_(_Post_z_) char* const _Buffer,
|
||
|
_In_ size_t const _BufferCount,
|
||
|
_In_ size_t const _MaxCount,
|
||
|
_In_z_ _Printf_format_string_ char const* const _Format,
|
||
|
...)
|
||
|
#if defined _NO_CRT_STDIO_INLINE
|
||
|
;
|
||
|
#else
|
||
|
{
|
||
|
int _Result;
|
||
|
va_list _ArgList;
|
||
|
__crt_va_start(_ArgList, _Format);
|
||
|
_Result = _vsnprintf_s_l(_Buffer, _BufferCount, _MaxCount, _Format, NULL, _ArgList);
|
||
|
__crt_va_end(_ArgList);
|
||
|
return _Result;
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
__DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_2_ARGLIST(
|
||
|
_Success_(return >= 0)
|
||
|
int, _snprintf_s, _vsnprintf_s,
|
||
|
_Always_(_Post_z_) char, _Buffer,
|
||
|
_In_ size_t, _BufferCount,
|
||
|
_In_z_ _Printf_format_string_ char const*, _Format
|
||
|
)
|
||
|
|
||
|
_Check_return_opt_
|
||
|
_CRT_STDIO_INLINE int __CRTDECL _scprintf_l(
|
||
|
_In_z_ _Printf_format_string_params_(0) char const* const _Format,
|
||
|
_In_opt_ _locale_t const _Locale,
|
||
|
...)
|
||
|
#if defined _NO_CRT_STDIO_INLINE
|
||
|
;
|
||
|
#else
|
||
|
{
|
||
|
int _Result;
|
||
|
va_list _ArgList;
|
||
|
__crt_va_start(_ArgList, _Locale);
|
||
|
_Result = _vscprintf_l(_Format, _Locale, _ArgList);
|
||
|
__crt_va_end(_ArgList);
|
||
|
return _Result;
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
_Check_return_
|
||
|
_CRT_STDIO_INLINE int __CRTDECL _scprintf(
|
||
|
_In_z_ _Printf_format_string_ char const* const _Format,
|
||
|
...)
|
||
|
#if defined _NO_CRT_STDIO_INLINE
|
||
|
;
|
||
|
#else
|
||
|
{
|
||
|
int _Result;
|
||
|
va_list _ArgList;
|
||
|
__crt_va_start(_ArgList, _Format);
|
||
|
_Result = _vscprintf_l(_Format, NULL, _ArgList);
|
||
|
__crt_va_end(_ArgList);
|
||
|
return _Result;
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
_Check_return_opt_
|
||
|
_CRT_STDIO_INLINE int __CRTDECL _scprintf_p_l(
|
||
|
_In_z_ _Printf_format_string_params_(0) char const* const _Format,
|
||
|
_In_opt_ _locale_t const _Locale,
|
||
|
...)
|
||
|
#if defined _NO_CRT_STDIO_INLINE
|
||
|
;
|
||
|
#else
|
||
|
{
|
||
|
int _Result;
|
||
|
va_list _ArgList;
|
||
|
__crt_va_start(_ArgList, _Locale);
|
||
|
_Result = _vscprintf_p_l(_Format, _Locale, _ArgList);
|
||
|
__crt_va_end(_ArgList);
|
||
|
return _Result;
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
_Check_return_
|
||
|
_CRT_STDIO_INLINE int __CRTDECL _scprintf_p(
|
||
|
_In_z_ _Printf_format_string_ char const* const _Format,
|
||
|
...)
|
||
|
#if defined _NO_CRT_STDIO_INLINE
|
||
|
;
|
||
|
#else
|
||
|
{
|
||
|
int _Result;
|
||
|
va_list _ArgList;
|
||
|
__crt_va_start(_ArgList, _Format);
|
||
|
_Result = _vscprintf_p(_Format, _ArgList);
|
||
|
__crt_va_end(_ArgList);
|
||
|
return _Result;
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
//-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
||
|
//
|
||
|
// Narrow Character Formatted Input Functions (String)
|
||
|
//
|
||
|
//-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
||
|
_ACRTIMP int __cdecl __stdio_common_vsscanf(
|
||
|
_In_ unsigned __int64 _Options,
|
||
|
_In_reads_(_BufferCount) _Pre_z_ char const* _Buffer,
|
||
|
_In_ size_t _BufferCount,
|
||
|
_In_z_ _Scanf_format_string_params_(2) char const* _Format,
|
||
|
_In_opt_ _locale_t _Locale,
|
||
|
va_list _ArgList
|
||
|
);
|
||
|
|
||
|
_Check_return_opt_
|
||
|
_CRT_STDIO_INLINE int __CRTDECL _vsscanf_l(
|
||
|
_In_z_ char const* const _Buffer,
|
||
|
_In_z_ _Printf_format_string_ char const* const _Format,
|
||
|
_In_opt_ _locale_t const _Locale,
|
||
|
va_list _ArgList
|
||
|
)
|
||
|
#if defined _NO_CRT_STDIO_INLINE
|
||
|
;
|
||
|
#else
|
||
|
{
|
||
|
return __stdio_common_vsscanf(
|
||
|
_CRT_INTERNAL_LOCAL_SCANF_OPTIONS,
|
||
|
_Buffer, (size_t)-1, _Format, _Locale, _ArgList);
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
_Check_return_opt_
|
||
|
_CRT_STDIO_INLINE int __CRTDECL vsscanf(
|
||
|
_In_z_ char const* const _Buffer,
|
||
|
_In_z_ _Printf_format_string_ char const* const _Format,
|
||
|
va_list _ArgList
|
||
|
)
|
||
|
#if defined _NO_CRT_STDIO_INLINE
|
||
|
;
|
||
|
#else
|
||
|
{
|
||
|
return _vsscanf_l(_Buffer, _Format, NULL, _ArgList);
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
_Check_return_opt_
|
||
|
_CRT_STDIO_INLINE int __CRTDECL _vsscanf_s_l(
|
||
|
_In_z_ char const* const _Buffer,
|
||
|
_In_z_ _Printf_format_string_ char const* const _Format,
|
||
|
_In_opt_ _locale_t const _Locale,
|
||
|
va_list _ArgList
|
||
|
)
|
||
|
#if defined _NO_CRT_STDIO_INLINE
|
||
|
;
|
||
|
#else
|
||
|
{
|
||
|
return __stdio_common_vsscanf(
|
||
|
_CRT_INTERNAL_LOCAL_SCANF_OPTIONS | _CRT_INTERNAL_SCANF_SECURECRT,
|
||
|
_Buffer, (size_t)-1, _Format, _Locale, _ArgList);
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
#if __STDC_WANT_SECURE_LIB__
|
||
|
|
||
|
#pragma warning(push)
|
||
|
#pragma warning(disable: 6530) // Unrecognized SAL format string
|
||
|
|
||
|
_Check_return_opt_
|
||
|
_CRT_STDIO_INLINE int __CRTDECL vsscanf_s(
|
||
|
_In_z_ char const* const _Buffer,
|
||
|
_In_z_ _Printf_format_string_ char const* const _Format,
|
||
|
va_list _ArgList
|
||
|
)
|
||
|
#if defined _NO_CRT_STDIO_INLINE
|
||
|
;
|
||
|
#else
|
||
|
{
|
||
|
return _vsscanf_s_l(_Buffer, _Format, NULL, _ArgList);
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
__DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_2(
|
||
|
int, vsscanf_s,
|
||
|
_In_z_ char const, _Buffer,
|
||
|
_In_z_ _Printf_format_string_ char const*, _Format,
|
||
|
va_list, _ArgList
|
||
|
)
|
||
|
|
||
|
#pragma warning(pop)
|
||
|
|
||
|
#endif
|
||
|
|
||
|
_Check_return_opt_ _CRT_INSECURE_DEPRECATE(_sscanf_s_l)
|
||
|
_CRT_STDIO_INLINE int __CRTDECL _sscanf_l(
|
||
|
_In_z_ char const* const _Buffer,
|
||
|
_In_z_ _Scanf_format_string_params_(0) char const* const _Format,
|
||
|
_In_opt_ _locale_t const _Locale,
|
||
|
...)
|
||
|
#if defined _NO_CRT_STDIO_INLINE // SCANF
|
||
|
;
|
||
|
#else
|
||
|
{
|
||
|
int _Result;
|
||
|
va_list _ArgList;
|
||
|
__crt_va_start(_ArgList, _Locale);
|
||
|
_Result = _vsscanf_l(_Buffer, _Format, _Locale, _ArgList);
|
||
|
__crt_va_end(_ArgList);
|
||
|
return _Result;
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
_Check_return_ _CRT_INSECURE_DEPRECATE(sscanf_s)
|
||
|
_CRT_STDIO_INLINE int __CRTDECL sscanf(
|
||
|
_In_z_ char const* const _Buffer,
|
||
|
_In_z_ _Scanf_format_string_ char const* const _Format,
|
||
|
...)
|
||
|
#if defined _NO_CRT_STDIO_INLINE // SCANF
|
||
|
;
|
||
|
#else
|
||
|
{
|
||
|
int _Result;
|
||
|
va_list _ArgList;
|
||
|
__crt_va_start(_ArgList, _Format);
|
||
|
_Result = _vsscanf_l(_Buffer, _Format, NULL, _ArgList);
|
||
|
__crt_va_end(_ArgList);
|
||
|
return _Result;
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
_Check_return_opt_
|
||
|
_CRT_STDIO_INLINE int __CRTDECL _sscanf_s_l(
|
||
|
_In_z_ char const* const _Buffer,
|
||
|
_In_z_ _Scanf_s_format_string_params_(0) char const* const _Format,
|
||
|
_In_opt_ _locale_t const _Locale,
|
||
|
...)
|
||
|
#if defined _NO_CRT_STDIO_INLINE // SCANF
|
||
|
;
|
||
|
#else
|
||
|
{
|
||
|
int _Result;
|
||
|
va_list _ArgList;
|
||
|
__crt_va_start(_ArgList, _Locale);
|
||
|
_Result = _vsscanf_s_l(_Buffer, _Format, _Locale, _ArgList);
|
||
|
__crt_va_end(_ArgList);
|
||
|
return _Result;
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
#if __STDC_WANT_SECURE_LIB__
|
||
|
|
||
|
_Check_return_opt_
|
||
|
_CRT_STDIO_INLINE int __CRTDECL sscanf_s(
|
||
|
_In_z_ char const* const _Buffer,
|
||
|
_In_z_ _Scanf_s_format_string_ char const* const _Format,
|
||
|
...)
|
||
|
#if defined _NO_CRT_STDIO_INLINE // SCANF
|
||
|
;
|
||
|
#else
|
||
|
{
|
||
|
int _Result;
|
||
|
va_list _ArgList;
|
||
|
__crt_va_start(_ArgList, _Format);
|
||
|
|
||
|
_Result = vsscanf_s(_Buffer, _Format, _ArgList);
|
||
|
|
||
|
__crt_va_end(_ArgList);
|
||
|
return _Result;
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
#endif
|
||
|
|
||
|
#pragma warning(push)
|
||
|
#pragma warning(disable: 6530) // Unrecognized SAL format string
|
||
|
|
||
|
_Check_return_opt_ _CRT_INSECURE_DEPRECATE(_snscanf_s_l)
|
||
|
_CRT_STDIO_INLINE int __CRTDECL _snscanf_l(
|
||
|
_In_reads_bytes_(_BufferCount) _Pre_z_ char const* const _Buffer,
|
||
|
_In_ size_t const _BufferCount,
|
||
|
_In_z_ _Scanf_format_string_params_(0) char const* const _Format,
|
||
|
_In_opt_ _locale_t const _Locale,
|
||
|
...)
|
||
|
#if defined _NO_CRT_STDIO_INLINE // SCANF
|
||
|
;
|
||
|
#else
|
||
|
{
|
||
|
int _Result;
|
||
|
va_list _ArgList;
|
||
|
__crt_va_start(_ArgList, _Locale);
|
||
|
|
||
|
_Result = __stdio_common_vsscanf(
|
||
|
_CRT_INTERNAL_LOCAL_SCANF_OPTIONS,
|
||
|
_Buffer, _BufferCount, _Format, _Locale, _ArgList);
|
||
|
|
||
|
__crt_va_end(_ArgList);
|
||
|
return _Result;
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
_Check_return_opt_ _CRT_INSECURE_DEPRECATE(_snscanf_s)
|
||
|
_CRT_STDIO_INLINE int __CRTDECL _snscanf(
|
||
|
_In_reads_bytes_(_BufferCount) _Pre_z_ char const* const _Buffer,
|
||
|
_In_ size_t const _BufferCount,
|
||
|
_In_z_ _Scanf_format_string_ char const* const _Format,
|
||
|
...)
|
||
|
#if defined _NO_CRT_STDIO_INLINE // SCANF
|
||
|
;
|
||
|
#else
|
||
|
{
|
||
|
int _Result;
|
||
|
va_list _ArgList;
|
||
|
__crt_va_start(_ArgList, _Format);
|
||
|
|
||
|
_Result = __stdio_common_vsscanf(
|
||
|
_CRT_INTERNAL_LOCAL_SCANF_OPTIONS,
|
||
|
_Buffer, _BufferCount, _Format, NULL, _ArgList);
|
||
|
|
||
|
__crt_va_end(_ArgList);
|
||
|
return _Result;
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
|
||
|
_Check_return_opt_
|
||
|
_CRT_STDIO_INLINE int __CRTDECL _snscanf_s_l(
|
||
|
_In_reads_bytes_(_BufferCount) _Pre_z_ char const* const _Buffer,
|
||
|
_In_ size_t const _BufferCount,
|
||
|
_In_z_ _Scanf_s_format_string_params_(0) char const* const _Format,
|
||
|
_In_opt_ _locale_t const _Locale,
|
||
|
...)
|
||
|
#if defined _NO_CRT_STDIO_INLINE // SCANF
|
||
|
;
|
||
|
#else
|
||
|
{
|
||
|
int _Result;
|
||
|
va_list _ArgList;
|
||
|
__crt_va_start(_ArgList, _Locale);
|
||
|
|
||
|
_Result = __stdio_common_vsscanf(
|
||
|
_CRT_INTERNAL_LOCAL_SCANF_OPTIONS | _CRT_INTERNAL_SCANF_SECURECRT,
|
||
|
_Buffer, _BufferCount, _Format, _Locale, _ArgList);
|
||
|
|
||
|
__crt_va_end(_ArgList);
|
||
|
return _Result;
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
_Check_return_opt_
|
||
|
_CRT_STDIO_INLINE int __CRTDECL _snscanf_s(
|
||
|
_In_reads_bytes_(_BufferCount) _Pre_z_ char const* const _Buffer,
|
||
|
_In_ size_t const _BufferCount,
|
||
|
_In_z_ _Scanf_s_format_string_ char const* const _Format,
|
||
|
...)
|
||
|
#if defined _NO_CRT_STDIO_INLINE // SCANF
|
||
|
;
|
||
|
#else
|
||
|
{
|
||
|
int _Result;
|
||
|
va_list _ArgList;
|
||
|
__crt_va_start(_ArgList, _Format);
|
||
|
|
||
|
_Result = __stdio_common_vsscanf(
|
||
|
_CRT_INTERNAL_LOCAL_SCANF_OPTIONS | _CRT_INTERNAL_SCANF_SECURECRT,
|
||
|
_Buffer, _BufferCount, _Format, NULL, _ArgList);
|
||
|
|
||
|
__crt_va_end(_ArgList);
|
||
|
return _Result;
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
#pragma warning(pop)
|
||
|
|
||
|
#if defined _M_CEE_MIXED
|
||
|
#pragma managed(pop)
|
||
|
#endif
|
||
|
|
||
|
|
||
|
|
||
|
//-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
||
|
//
|
||
|
// Non-ANSI Names for Compatibility
|
||
|
//
|
||
|
//-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
||
|
#if defined(_CRT_INTERNAL_NONSTDC_NAMES) && _CRT_INTERNAL_NONSTDC_NAMES
|
||
|
|
||
|
#define SYS_OPEN _SYS_OPEN
|
||
|
|
||
|
#if defined _DEBUG && defined _CRTDBG_MAP_ALLOC
|
||
|
#pragma push_macro("tempnam")
|
||
|
#undef tempnam
|
||
|
#endif
|
||
|
|
||
|
_CRT_NONSTDC_DEPRECATE(_tempnam)
|
||
|
_ACRTIMP char* __cdecl tempnam(
|
||
|
_In_opt_z_ char const* _Directory,
|
||
|
_In_opt_z_ char const* _FilePrefix
|
||
|
);
|
||
|
|
||
|
#if defined _DEBUG && defined _CRTDBG_MAP_ALLOC
|
||
|
#pragma pop_macro("tempnam")
|
||
|
#endif
|
||
|
|
||
|
_Check_return_opt_ _CRT_NONSTDC_DEPRECATE(_fcloseall) _ACRTIMP int __cdecl fcloseall(void);
|
||
|
_Check_return_ _CRT_NONSTDC_DEPRECATE(_fdopen) _ACRTIMP FILE* __cdecl fdopen(_In_ int _FileHandle, _In_z_ char const* _Format);
|
||
|
_Check_return_opt_ _CRT_NONSTDC_DEPRECATE(_fgetchar) _ACRTIMP int __cdecl fgetchar(void);
|
||
|
_Check_return_ _CRT_NONSTDC_DEPRECATE(_fileno) _ACRTIMP int __cdecl fileno(_In_ FILE* _Stream);
|
||
|
_Check_return_opt_ _CRT_NONSTDC_DEPRECATE(_flushall) _ACRTIMP int __cdecl flushall(void);
|
||
|
_Check_return_opt_ _CRT_NONSTDC_DEPRECATE(_fputchar) _ACRTIMP int __cdecl fputchar(_In_ int _Ch);
|
||
|
_Check_return_ _CRT_NONSTDC_DEPRECATE(_getw) _ACRTIMP int __cdecl getw(_Inout_ FILE* _Stream);
|
||
|
_Check_return_opt_ _CRT_NONSTDC_DEPRECATE(_putw) _ACRTIMP int __cdecl putw(_In_ int _Ch, _Inout_ FILE* _Stream);
|
||
|
_Check_return_ _CRT_NONSTDC_DEPRECATE(_rmtmp) _ACRTIMP int __cdecl rmtmp(void);
|
||
|
|
||
|
#endif // _CRT_INTERNAL_NONSTDC_NAMES
|
||
|
#endif // _CRT_FUNCTIONS_REQUIRED
|
||
|
|
||
|
|
||
|
|
||
|
_CRT_END_C_HEADER
|
||
|
_UCRT_RESTORE_CLANG_WARNINGS
|
||
|
#pragma warning(pop) // _UCRT_DISABLED_WARNINGS
|
||
|
#endif // _INC_STDIO
|