21 reinterpret_cast<unsigned char const*
>(
string),
38template <
typename Character>
42 size_t const buffer_size_in_chars
49 size_t const template_string_length = traits::tcsnlen(template_string, buffer_size_in_chars);
50 if (template_string_length >= buffer_size_in_chars)
55 _FILL_STRING(template_string, buffer_size_in_chars, template_string_length + 1);
57 if(template_string_length < 6 || buffer_size_in_chars <= template_string_length)
70 Character*
string = template_string + template_string_length;
72 size_t template_length = 0;
75 while (--
string >= template_string
78 && template_length < 5)
81 *
string =
static_cast<Character
>((
number % 10) +
'0');
86 if (*
string !=
'X' || template_length < 5)
93 Character letter =
'a';
101 while (traits::taccess_s(template_string, 0) == 0)
103 if (letter ==
'z' + 1)
120 char*
const template_string,
121 size_t const buffer_size_in_chars
124 return common_mktemp_s(template_string, buffer_size_in_chars);
128 wchar_t*
const template_string,
129 size_t const buffer_size_in_chars
132 return common_mktemp_s(template_string, buffer_size_in_chars);
144template <
typename Character>
146 Character*
const template_string
155 static_cast<size_t>(traits::tcslen(template_string) + 1));
157 return result == 0 ? template_string :
nullptr;
#define _RETURN_DEST_NOT_NULL_TERMINATED(_String, _Size)
#define _RESET_STRING(_String, _Size)
#define _VALIDATE_RETURN(expr, errorcode, retexpr)
#define _VALIDATE_RETURN_ERRCODE(expr, errorcode)
errno_t __cdecl _wmktemp_s(wchar_t *const template_string, size_t const buffer_size_in_chars)
static bool common_mktemp_s_continue(char const *const string, char const *const current)
char *__cdecl _mktemp(char *const template_string)
errno_t __cdecl _mktemp_s(char *const template_string, size_t const buffer_size_in_chars)
size_t const buffer_size_in_chars throw()
static Character *__cdecl common_mktemp(Character *const template_string)
struct task_struct * current
static unsigned int number
int __cdecl _ismbstrail(const unsigned char *start, const unsigned char *str)
#define _Inout_updates_z_(s)
DWORD WINAPI GetCurrentThreadId(void)