WCSLCAT(3C) Standard C Library Functions WCSLCAT(3C)
NAME
wcslcat - concatenate wide-character strings
LIBRARY
Standard C Library (libc, -lc)
SYNOPSIS
#include <wchar.h> size_t wcslcat(
wchar_t *restrict dst,
wchar_t *restrict src,
size_t dstlen);
DESCRIPTION
The
wcslcat() function is the wide-character version of
strlcat(3C).
It concatenates the wide-character string in
src with the wide-
character string in
dst, while ensuring that
dst is always properly
terminated with the null wide-character (L'\0').
Wide characters in
src will be appended to
dst starting at the end of
an existing wide-character string in
dst, replacing an existing
terminating null wide-character. Put differently, copying will begin
at the result of a call to the equivalent of
wcsnlen(dst, dstlen).
Characters will be copied until either a terminating null wide-
character is found in
src or the destination buffer would be full,
whichever comes first. This may result in a truncated portion of
src,
or none at all, appearing in
dst.
A terminating null wide-character is inserted unless the initial wide-
character string in
dst contained
dstlen characters without a
terminating null wide-character. However, if
dstlen is zero, then
dst will not be touched.
RETURN VALUES
The
wcslcat() function returns the total number of wide characters that
would be required to store the concatenated wide-character string,
excluding the terminating null wide-character.
EXAMPLES
Example 1 Checking for overflow
The following example shows how one would check if string concatenation
with the
wcslcat() function resulted in overflow. Note, the use of
`>=' down below is required because the
wcslcat() function always
ensures that the buffer has a terminating null wide-character.
#include <wchar.h>
#include <err.h>
#include <stdlib.h>
#define BUFLEN 32
wchar_t buf[BUFLEN] = { L'\0' };
...
static void
concat(const wchar_t *src)
{
if (wcslcat(buf, src, BUFLEN) >= BUFLEN) {
errx(EXIT_FAILURE, "overflow detected!");
}
}
...
INTERFACE STABILITY
CommittedMT-LEVEL MT-SafeSEE ALSO
strlcat(3C),
wcslcpy(3C)illumos January 5, 2025 illumos