WCSLCPY(3C) Standard C Library Functions WCSLCPY(3C)

NAME


wcslcpy - copy a wide-character string

LIBRARY


Standard C Library (libc, -lc)

SYNOPSIS


#include <wchar.h>

size_t
wcslcpy(wchar_t *restrict dst, wchar_t *restrict src, size_t dstlen);

DESCRIPTION


The wcslcpy() function is the wide-character version of strlcpy(3C). It
copies wide characters from src to dst, while ensuring that dst is always
properly terminated with the null wide-character (L'\0').

Characters from src are copied until either the null wide-character is
found in src or dstlen - 1 wide characters have been copied, whichever
comes first. In the latter case, the copy of src in dst will be truncated.
If dstlen is zero, then no characters are copied.

RETURN VALUES


The wcslcpy() function always returns the total number of wide characters
in src, excluding the terminating null wide-character.

EXAMPLES


Example 1 Checking for overflow

The following example shows how one would check if a copy using the
wcslcpy() function would have overflowed a fixed size buffer. Note, the
use of `>=' down below is required because the wcslcpy() function always
ensures that the buffer has a terminating null wide-character.

#include <wchar.h>
#include <stdio.h>

#define BUFLEN 32
wchar_t buf[BUFLEN];

...
if (wcslcpy(buf, src, BUFLEN) >= BUFLEN) {
(void) fprintf(stderr, "overflow detected!");
goto out;
}
...

INTERFACE STABILITY


Committed

MT-LEVEL
MT-Safe

SEE ALSO


strlcpy(3C), wcslcat(3C)

illumos January 5, 2025 illumos