Compartir a través de


_mbccpy_s, _mbccpy_s_l

Copia un único carácter multibyte a partir de una cadena con otra cadena.Éstas son versiones de _mbccpy, _mbccpy_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 _mbccpy_s(
   unsigned char *dest,
   size_t buffSizeInBytes,
   int * pCopied,
   const unsigned char *src 
);
errno_t _mbccpy_s_l(
   unsigned char *dest,
   size_t buffSizeInBytes,
   int * pCopied,
   const unsigned char *src,
   locale_t locale
);
template <size_t size>
errno_t _mbccpy_s(
   unsigned char (&dest)[size],
   int * pCopied,
   const unsigned char *src 
); // C++ only
template <size_t size>
errno_t _mbccpy_s_l(
   unsigned char (&dest)[size],
   int * pCopied,
   const unsigned char *src,
   locale_t locale
); // C++ only

Parámetros

  • [out] dest
    Copie el destino.

  • [in] buffSizeInBytes
    Tamaño del búfer de destino.

  • [out] pCopied
    Relleno con el número de bytes copiados (1 o 2 si correctamente).Pase NULL si no interesen sobre el número.

  • [in] src
    Carácter de Multibyte a copiar.

  • [in] locale
    Configuración regional a utilizar.

Valor devuelto

Cero si correctamente; un código de error del error.Si src o dest es NULL, o si más que los bytes de buffSizeinBytes se copiarán en dest, después se invoca el controlador no válido de parámetro, tal y como se describe en Validación de parámetros.Si la ejecución puede continuar, las funciones EINVAL return y errno se establecen en EINVAL.

Comentarios

La función de _mbccpy_s copia un carácter multibyte de src a dest.Si src no indica el byte inicial de un carácter multibyte determinado por una llamada implícita a _ismbblead, el byte único al que los puntos de src se copian.Si los puntos de src a un byte inicial solo byte siguiente son 0 y así no válido, después 0 se copia en dest, errno se establece en EILSEQ, y la función devuelve EILSEQ.

_mbccpy_s no anexa un terminador null; sin embargo, si señala un carácter null, entonces que de src null se copia a dest (esto simplemente una copia normal del solo- byte).

El valor de pCopied se rellena con el número de bytes copiados.Los valores posibles son 1 y 2 si la operación es correcta.Si NULL se pasa, se omite este parámetro.

src

copie en dest

pCopied

Valor devuelto

no-lead-byte

no-lead-byte

1

0

0

0

1

0

lead- byte seguido de non-0

lead- byte seguido de non-0

2

0

lead- byte seguido de 0

0

1

EILSEQ

Observe que la segunda fila simplemente es un caso especial del primero.Observe también que la tabla se supone el >= pCopied de buffSizeInBytes.

_mbccpy_s utiliza la configuración regional actual para cualquier comportamiento configuración regional-dependiente._mbccpy_s_l es idéntico a _mbccpy_s salvo que _mbccpy_s_l utiliza la configuración regional pasado para cualquier comportamiento configuración regional- dependiente.

En C++, mediante estas funciones es simplificado con sobrecargas de plantilla; las sobrecargas pueden deducir longitud de búfer automáticamente, lo que elimina la necesidad de especificar un argumento size.Para obtener más información, vea Sobrecargas de plantilla de seguridad.

Asignaciones de la rutina de Genérico- texto

Rutina de Tchar.h

_UNICODE y _MBCS no definidos

_MBCS definido

_UNICODE definido

_tccpy_s

Asigna a la macro o función inline.

_mbccpy_s

Asigna a la macro o función inline.

Requisitos

Rutina

Encabezado necesario

_mbccpy_s

<mbstring.h>

_mbccpy_s_l

<mbstring.h>

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

Vea también

Referencia

Configuración regional

Interpretación de secuencias de Multibyte- Carácter

_mbclen, mblen, _mblen_l