_mbsnbcpy_s
, _mbsnbcpy_s_l
Copia n bytes de una cadena a una cadena de destino. Estas versiones de , _mbsnbcpy_l
tienen mejoras de_mbsnbcpy
seguridad, como se describe en Características de seguridad de CRT.
Importante
Esta API no se puede usar en aplicaciones que se ejecutan en Windows en tiempo de ejecución. Para obtener más información, vea Funciones de CRT no admitidas en aplicaciones de la Plataforma universal de Windows.
Sintaxis
errno_t _mbsnbcpy_s(
unsigned char * strDest,
size_t sizeInBytes,
const unsigned char * strSource,
size_t count
);
errno_t _mbsnbcpy_s_l(
unsigned char * strDest,
size_t sizeInBytes,
const unsigned char * strSource,
size_t count,
_locale_t locale
);
template <size_t size>
errno_t _mbsnbcpy_s(
unsigned char (&strDest)[size],
const unsigned char * strSource,
size_t count
); // C++ only
template <size_t size>
errno_t _mbsnbcpy_s_l(
unsigned char (&strDest)[size],
const unsigned char * strSource,
size_t count,
_locale_t locale
); // C++ only
Parámetros
strDest
Destino de la cadena de caracteres que se va a copiar.
sizeInBytes
Tamaño del búfer de destino.
strSource
Cadena de caracteres que se va a copiar.
count
Número de bytes que se van a copiar.
locale
Configuración regional que se va a usar.
Valor devuelto
Cero si la operación se ejecuta correctamente; EINVAL
si se pasa un parámetro incorrecto.
Comentarios
La función _mbsnbcpy_s
copia count
bytes de strSource
en strDest
. Si count
supera el tamaño de strDest
, cualquiera de las cadenas de entrada es un puntero nulo o sizeInBytes
count
es 0, la función invoca al controlador de parámetros no válidos, tal como se describe en Validación de parámetros . Si la ejecución puede continuar, la función devuelve EINVAL
. Si las cadenas de origen y de destino se superponen, el comportamiento de _mbsnbcpy_s
no se define.
El valor de salida se ve afectado por el valor de la categoría LC_CTYPE
de la configuración regional. Para obtener más información, vea setlocale
. Las versiones de estas funciones sin el sufijo _l
usan la configuración regional actual de su comportamiento dependiente de la configuración regional; las versiones con el sufijo _l
son idénticas salvo que usan el parámetro locale pasado en su lugar. Para obtener más información, vea Locale.
Nota:
A diferencia de la versión no segura de esta función, _mbsnbcpy_s
no agrega ningún relleno de valores nulos y siempre finaliza la cadena con un valor nulo.
En C++, el uso de estas funciones se simplifica con las sobrecargas de plantilla; las sobrecargas pueden realizar una inferencia automáticamente de la longitud de búfer (lo que elimina el requisito de especificar un argumento de tamaño) y pueden reemplazar automáticamente funciones anteriores no seguras con sus homólogos seguros más recientes. Para obtener más información, consulte Sobrecargas de plantilla seguras.
Las versiones de la biblioteca de depuración de estas funciones rellenan primero el búfer con 0xFE. Para deshabilitar este comportamiento, use _CrtSetDebugFillThreshold
.
De manera predeterminada, el estado global de esta función está limitado a la aplicación. Para cambiar este comportamiento, consulte Estado global en CRT.
Asignaciones de rutinas de texto genérico
Rutina Tchar.h | _UNICODE y _MBCS no definidos |
_MBCS definido |
_UNICODE definido |
---|---|---|---|
_tcsncpy_s |
_strncpy_s |
_mbsnbcpy_s |
_wcsncpy_s |
_tcsncpy_s_l |
_strncpy_s_l |
_mbsnbcpy_s_l |
_wcsncpy_s_l |
Requisitos
Routine | Encabezado necesario |
---|---|
_mbsnbcpy_s |
<mbstring.h> |
_mbsnbcpy_s_l |
<mbstring.h> |
Para obtener más información sobre compatibilidad, consulte Compatibilidad.
Consulte también
Manipulación de cadenas
_mbsnbcat
, _mbsnbcat_l
_mbsnbcmp
, _mbsnbcmp_l
_strncnt
, _wcsncnt
, _mbsnbcnt
, _mbsnbcnt_l
, , _mbsnccnt
, _mbsnccnt_l
_mbsnbicmp
, _mbsnbicmp_l
_mbsnbset
, _mbsnbset_l
strncpy
, _strncpy_l
, wcsncpy
, _wcsncpy_l
, , _mbsncpy
, _mbsncpy_l