The wcsncpy_s function copies the wide string pointed to by src (including the terminating null character) into the wide string pointed to by dest.
With SAFECLIB_STR_NULL_SLACK defined all elements following the terminating null character (if any) written by wcsncpy_s in the array of dmax characters pointed to by dest are nulled when wcsncpy_s returns.
- Parameters
-
[out] | dest | pointer to wide string that will be replaced by src. |
[in] | dmax | restricted maximum length of dest |
[in] | src | pointer to the wide string that will be copied to dest |
[in] | slen | maximum number of wide characters to copy |
- Precondition
- Neither dest nor src shall be a null pointer.
-
dmax shall not be greater than RSIZE_MAX_WSTR.
-
dmax shall not equal zero.
-
If slen is either greater than or equal to dmax, then dmax should be more than wcsnlen_s(src,dmax) to avoid truncation.
-
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 wcsncpy_s nulls dest.
- Return values
-
EOK | when successful operation, the wide characters in src were copied into dest and the result is null terminated. |
ESNULLP | when dest or src is a NULL pointer |
ESZEROL | when dmax = 0. Before C11 also with slen = 0 |
ESLEMAX | when dmax > RSIZE_MAX_WSTR |
ESOVRLP | when buffers overlap |
ESNOSPC | when dest < src |
- See also
- wcscpy_s(), strncpy_s(), wmemcpy_s(), wmemmove_s()