13 #define _TRUNCATE ((size_t)-1)
21 errno_t fopen_s(FILE **pfile,
const char *filename,
const char *mode);
22 errno_t localtime_s(
struct tm* _tm,
const time_t *time);
23 errno_t mbstowcs_s(
size_t *pReturnValue,
wchar_t *wcstr,
size_t sizeInWords,
const char *mbstr,
size_t count);
24 int sprintf_s(
char *buffer,
size_t sizeOfBuffer,
const char *format, ...);
25 errno_t strcat_s(
char *strDestination,
size_t numberOfElements,
const char *strSource);
26 errno_t strcpy_s(
char* strDestination,
size_t numberOfElements,
const char *strSource);
27 errno_t strerror_s(
char* buffer,
size_t numberOfElements,
int errnum);
28 errno_t strncat_s(
char *strDest,
size_t numberOfElements,
const char *strSource,
size_t count);
29 errno_t strncpy_s(
char *strDest,
size_t numberOfElements,
const char *strSource,
size_t count);
30 int vsnprintf_s(
char *buffer,
size_t sizeOfBuffer,
size_t count,
const char *format, va_list argptr);
31 errno_t wcscat_s(
wchar_t *strDestination,
size_t numberOfElements,
const wchar_t *strSource);
32 errno_t wcscpy_s(
wchar_t* strDestination,
size_t numberOfElements,
const wchar_t *strSource);
35 template<
size_t BufferSize> errno_t mbstowcs_s(
size_t *pReturnValue,
wchar_t(&wcstr)[BufferSize],
const char *mbstr,
size_t count)
37 return mbstowcs_s(pReturnValue, wcstr, BufferSize, mbstr, count);
40 template<
size_t BufferSize>
int sprintf_s(
char (&buffer)[BufferSize],
const char* format, ...)
43 va_start(arglist, format);
44 int numCharsWritten = vsnprintf_s(buffer, BufferSize, BufferSize - 1, format, arglist);
47 return numCharsWritten;
50 template<
size_t BufferSize> errno_t strcat_s(
char (&strDestination)[BufferSize],
const char* strSource)
52 return strcat_s(strDestination, BufferSize, strSource);
55 template<
size_t BufferSize> errno_t strcpy_s(
char (&strDestination)[BufferSize],
const char* strSource)
57 return strcpy_s(strDestination, BufferSize, strSource);
60 template<
size_t BufferSize> errno_t strerror_s(
char(&buffer)[BufferSize],
int errnum)
62 return strerror_s(buffer, BufferSize, errnum);
65 template<
size_t BufferSize> errno_t strncat_s(
char(&strDest)[BufferSize],
const char *strSource,
size_t count)
67 return strncat_s(strDest, BufferSize, strSource, count);
70 template<
size_t BufferSize> errno_t strncpy_s(
char(&strDest)[BufferSize],
const char *strSource,
size_t count)
72 return strncpy_s(strDest, BufferSize, strSource, count);
75 template<
size_t BufferSize>
int vsnprintf_s(
char (&buffer)[BufferSize],
size_t count,
const char *format, va_list argptr)
77 return vsnprintf_s(buffer, BufferSize, count, format, argptr);