_mbsnbcpy_s, _mbsnbcpy_s_l

 

Para obtener la documentación más reciente de Visual Studio 2017 RC, consulte Documentación de Visual Studio 2017 RC.

Copia n bytes de una cadena en una cadena de destino. Estas versiones de _mbsnbcpy, _mbsnbcpy_l tienen mejoras de seguridad, como se describe en características de seguridad de CRT.

System_CAPS_ICON_important.jpg Importante

Esta API no se puede usar en aplicaciones que se ejecutan en Windows en tiempo de ejecución. Para más información, vea Funciones de CRT no admitidas con /ZW.

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.

Cero si la operación se ejecuta correctamente; EINVAL si se pasa un parámetro incorrecto.

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 o count es 0, la función invoca el controlador de parámetros no válidos, como se describe en validación del parámetro . 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 LC_CTYPE configuración de categoría de la configuración regional; vea setlocale para obtener más información. 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.

System_CAPS_ICON_note.jpg 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, consulta Secure Template Overloads.

Las versiones de depuración de estas funciones rellenan primero el búfer con 0xFD. Para deshabilitar este comportamiento, use _CrtSetDebugFillThreshold.

Asignaciones de rutina 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
RutinaEncabezado necesario
_mbsnbcpy_s<mbstring.h>
_mbsnbcpy_s_l<mbstring.h>

Para obtener más información sobre compatibilidad, vea Compatibility.

No es aplicable. Para llamar a la función estándar de C, use PInvoke. Para obtener más información, vea Ejemplos de invocación de plataforma.

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

Mostrar: