safec  3.0
Safe C Library - ISO TR24731 Bounds Checking Interface
wcscpy_s.c File Reference
#include "safe_str_lib.h"
+ Include dependency graph for wcscpy_s.c:

Functions

EXPORT errno_t wcscpy_s (wchar_t *restrict dest, rsize_t dmax, const wchar_t *restrict src)
 The wcscpy_s function copies the string pointed to by src (including the terminating null character) into the array pointed to by dest. More...
 

Function Documentation

◆ wcscpy_s()

EXPORT errno_t wcscpy_s ( wchar_t *restrict  dest,
rsize_t  dmax,
const wchar_t *restrict  src 
)

The wcscpy_s function copies the string pointed to by src (including the terminating null character) into the array pointed to by dest.

With SAFECLIB_STR_NULL_SLACK defined all elements following the terminating null character (if any) written by wcscpy_s in the array of dmax characters pointed to by dest are nulled when wcscpy_s returns.

Remarks
SPECIFIED IN
  • C11 standard (ISO/IEC 9899:2011): K.3.9.2.1.1 The wcscpy_s function (p: 639) http://en.cppreference.com/w/c/string/wide/wcscpy
  • ISO/IEC TR 24731, Programming languages, environments and system software interfaces, Extensions to the C Library, Part I: Bounds-checking interfaces
Parameters
[out]destpointer to wide string that will be replaced by src.
[in]dmaxrestricted maximum length of dest
[in]srcpointer to the wide string that will be copied to dest
Precondition
Neither dest nor src shall be a null pointer.
dmax shall not be greater than RSIZE_MAX_WSTR.
dmax shall not equal zero.
dmax shall be greater than wcsnlen_s(src, dmax).
Copying shall not take place between objects that overlap.
Note
C11 uses RSIZE_MAX, not RSIZE_MAX_WSTR.
Returns
If there is a runtime-constraint violation, then if dest is not a null pointer and dmax is greater than zero and not greater than RSIZE_MAX_WSTR, then wcscpy_s nulls dest.
Return values
EOKwhen successful operation, the wide characters in src were copied into dest and the result is null terminated.
-ESNULLPwhen dest or src is a NULL pointer
-ESZEROLwhen dmax = 0
-ESLEMAXwhen dmax > RSIZE_MAX_WSTR
-ESOVRLPwhen buffers overlap
-ESNOSPCwhen dest < src
See also
wcsncpy(), wmemcpy(), wmemmove(), strncpy_s()