wcsncat, wcsncat_s
|
Definido en el encabezado
<wchar.h>
|
||
| (1) | ||
|
wchar_t
*
wcsncat
(
wchar_t
*
dest,
const
wchar_t
*
src,
size_t
count
)
;
|
(desde C95)
(hasta C99) |
|
|
wchar_t
*
wcsncat
(
wchar_t
*
restrict
dest,
const wchar_t * restrict src, size_t count ) ; |
(desde C99) | |
|
errno_t wcsncat_s
(
wchar_t
*
restrict
dest, rsize_t destsz,
const wchar_t * restrict src, rsize_t count ) ; |
(2) | (desde C11) |
count
caracteres anchos de la cadena ancha apuntada por
src
, deteniéndose si se copia el terminador nulo, al final de la cadena de caracteres apuntada por
dest
. El carácter ancho
src
[
0
]
reemplaza el terminador nulo al final de
dest
. El terminador nulo siempre se añade al final (por lo que el número máximo de caracteres anchos que la función puede escribir es
count
+
1
).
str
y
dest
y el carácter nulo ancho de terminación.
destsz
) y que los siguientes errores se detectan en tiempo de ejecución y llaman a la función
constraint handler
actualmente instalada:
-
-
srcodestes un puntero nulo -
destszocountes cero o mayor que RSIZE_MAX / sizeof ( wchar_t ) -
no hay un carácter ancho nulo en los primeros
destszcaracteres anchos dedest -
ocurriría truncamiento:
counto la longitud desrc, el que sea menor, excede el espacio disponible entre el terminador nulo dedestydestsz. - ocurriría superposición entre las cadenas fuente y destino
-
-
Como con todas las funciones con verificación de límites,
wcsncat_ssolo está garantizada que esté disponible si __STDC_LIB_EXT1__ está definido por la implementación y si el usuario define __STDC_WANT_LIB_EXT1__ a la constante entera 1 antes de incluir <wchar.h> .
Contenidos |
Parámetros
| dest | - | puntero a la cadena ancha terminada en nulo a la que se va a añadir |
| src | - | puntero a la cadena ancha terminada en nulo desde la que se va a copiar |
| count | - | número máximo de caracteres anchos a copiar |
| destsz | - | tamaño del búfer de destino |
Valor de retorno
dest
dest
sea un puntero nulo o
destsz
sea cero o mayor que
RSIZE_MAX
/
sizeof
(
wchar_t
)
).
Notas
Aunque el truncamiento para ajustarse al búfer de destino es un riesgo de seguridad y, por lo tanto, una violación de las restricciones en tiempo de ejecución para
wcsncat_s
,
es posible obtener el comportamiento de truncamiento especificando
count
igual al tamaño del array de destino menos uno: copiará los primeros
count
caracteres anchos y añadirá el terminador nulo como siempre:
wcsncat_s
(
dst,
sizeof
dst
/
sizeof
*
dst, src,
(
sizeof
dst
/
sizeof
*
dst
)
-
wcsnlen_s
(
dst,
sizeof
dst
/
sizeof
*
dst
)
-
1
)
;
Ejemplo
Salida posible:
Земля, прощай. В добрый
Referencias
- Estándar C17 (ISO/IEC 9899:2018):
-
- 7.29.4.3.2 La función wcsncat (p: 315)
-
- K.3.9.2.2.2 La función wcsncat_s (p: 466-467)
- Estándar C11 (ISO/IEC 9899:2011):
-
- 7.29.4.3.2 La función wcsncat (p: 432-433)
-
- K.3.9.2.2.2 La función wcsncat_s (p: 643-644)
- Estándar C99 (ISO/IEC 9899:1999):
-
- 7.24.4.3.2 La función wcsncat (p: 378-379)
Véase también
|
(C95)
(C11)
|
agrega una copia de una cadena ancha a otra
(función) |
|
(C11)
|
concatena una cantidad determinada de caracteres de dos cadenas
(función) |
|
(C95)
(C11)
|
copia una cadena ancha a otra
(función) |
|
Documentación de C++
para
wcsncat
|
|