Compartir a través de


_mbsnbcpy_s, _mbsnbcpy_s_l

Copia los bytes de n de una cadena en una cadena de destino.Éstas son versiones de _mbsnbcpy, _mbsnbcpy_l con mejoras de seguridad como se describe en Características de seguridad en CRT.

Nota importanteImportante

Esta API no se puede utilizar en las aplicaciones que se ejecutan en tiempo de ejecución de Windows.Para obtener más información, vea Funciones CRT no compatibles 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 cadena de caracteres se copie.

  • sizeInBytes
    Tamaño de búfer de destino.

  • strSource
    Cadena de caracteres que se van a copiar.

  • count
    Número de bytes que se copiarán.

  • locale
    Configuración regional a utilizar.

Valor devuelto

Cero si correctamente; EINVAL si un parámetro incorrecto se ha pasado.

Comentarios

La función de _mbsnbcpy_s copia los bytes de count de strSource a strDest.Si count supera el tamaño de strDest, o de las cadenas de entrada es un puntero NULL, o sizeInBytes o count es 0, la función invoca el controlador no válido del parámetro 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 es indefinido.

El valor de salida se ve afectado por el valor de la categoría de LC_CTYPE de configuración regional; vea setlocale para obtener más información.Las versiones de estas funciones sin el sufijo de _l utilizan la configuración regional actual para este comportamiento configuración regional-dependiente; las versiones con el sufijo de _l son idénticas salvo que utilizan el parámetro locale pasado en su lugar.Para obtener más información, vea Configuración regional.

[!NOTA]

A diferencia de la versión de que Secure de esta función, _mbsnbcpy_s no tiene ningún relleno null y null termina siempre la cadena.

En C++, mediante estas funciones es simplificado con sobrecargas de plantilla; las sobrecargas pueden deducir la longitud de búfer automáticamente (que elimina la necesidad de especificar un argumento de tamaño) y automáticamente pueden reemplazar anterior, funciones de no Secure con sus más recientes, seguros homólogos.Para obtener más información, vea Sobrecargas de plantilla de seguridad.

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

Asignaciones de la rutina de Genérico- texto

Rutina de 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

Rutina

Encabezado necesario

_mbsnbcpy_s

<mbstring.h>

_mbsnbcpy_s_l

<mbstring.h>

Para obtener más información de compatibilidad, vea Compatibilidad en la Introducción.

Equivalente en .NET Framework

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

Vea también

Referencia

Manipulación de cadenas (CRT)

_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