_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.
Importante |
---|
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.