wcsncat, wcsncat_s
|
Defined in header
<wchar.h>
|
||
| (1) | ||
|
wchar_t
*
wcsncat
(
wchar_t
*
dest,
const
wchar_t
*
src,
size_t
count
)
;
|
(since C95)
(until C99) |
|
|
wchar_t
*
wcsncat
(
wchar_t
*
restrict
dest,
const wchar_t * restrict src, size_t count ) ; |
(since C99) | |
|
errno_t wcsncat_s
(
wchar_t
*
restrict
dest, rsize_t destsz,
const wchar_t * restrict src, rsize_t count ) ; |
(2) | (since C11) |
count
wide characters from the wide string pointed to by
src
, stopping if the null terminator is copied, to the end of the character string pointed to by
dest
. The wide character
src
[
0
]
replaces the null terminator at the end of
dest
. The null terminator is always appended in the end (so the maximum number of wide characters the function may write is
count
+
1
).
str
and
dest
and the terminating null wide character.
destsz
) and that the following errors are detected at runtime and call the currently installed
constraint handler
function:
-
-
srcordestis a null pointer -
destszorcountis zero or greater than RSIZE_MAX / sizeof ( wchar_t ) -
there is no null wide character in the first
destszwide characters ofdest -
truncation would occur:
countor the length ofsrc, whichever is less, exceeds the space available between the null terminator ofdestanddestsz. - overlap would occur between the source and the destination strings
-
-
As with all bounds-checked functions,
wcsncat_sis only guaranteed to be available if __STDC_LIB_EXT1__ is defined by the implementation and if the user defines __STDC_WANT_LIB_EXT1__ to the integer constant 1 before including <wchar.h> .
Contents |
Parameters
| dest | - | pointer to the null-terminated wide string to append to |
| src | - | pointer to the null-terminated wide string to copy from |
| count | - | maximum number of wide characters to copy |
| destsz | - | the size of the destination buffer |
Return value
dest
dest
is a null pointer or
destsz
is zero or greater than
RSIZE_MAX
/
sizeof
(
wchar_t
)
).
Notes
Although truncation to fit the destination buffer is a security risk and therefore a runtime constraints violation for
wcsncat_s
, it is possible to get the truncating behavior by specifying
count
equal to the size of the destination array minus one: it will copy the first
count
wide characters and append the null terminator as always:
wcsncat_s
(
dst,
sizeof
dst
/
sizeof
*
dst, src,
(
sizeof
dst
/
sizeof
*
dst
)
-
wcsnlen_s
(
dst,
sizeof
dst
/
sizeof
*
dst
)
-
1
)
;
Example
Possible output:
Земля, прощай. В добрый
References
- C17 standard (ISO/IEC 9899:2018):
-
- 7.29.4.3.2 The wcsncat function (p: 315)
-
- K.3.9.2.2.2 The wcsncat_s function (p: 466-467)
- C11 standard (ISO/IEC 9899:2011):
-
- 7.29.4.3.2 The wcsncat function (p: 432-433)
-
- K.3.9.2.2.2 The wcsncat_s function (p: 643-644)
- C99 standard (ISO/IEC 9899:1999):
-
- 7.24.4.3.2 The wcsncat function (p: 378-379)
See also
|
(C95)
(C11)
|
appends a copy of one wide string to another
(function) |
|
(C11)
|
concatenates a certain amount of characters of two strings
(function) |
|
(C95)
(C11)
|
copies one wide string to another
(function) |
|
C++ documentation
for
wcsncat
|
|