Condividi tramite


_mbccpy_s, _mbccpy_s_l

Copia un singolo carattere multibyte da una stringa in un'altra stringa.Queste sono versioni di _mbccpy, _mbccpy_l con i miglioramenti della sicurezza come descritto in Funzionalità di sicurezza in CRT.

Nota importanteImportante

Questa API non può essere utilizzata nelle applicazioni che vengono eseguite in Windows Runtime.Per ulteriori informazioni, vedere Funzioni CRT non supportate 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

Parametri

  • [out] dest
    Copiare la destinazione.

  • [in] buffSizeInBytes
    Dimensione del buffer di destinazione.

  • [out] pCopied
    L'inserimento di numero di byte copiati (1 o 2 in caso di esito positivo).Passare NULL se non è necessario per il numero.

  • [in] src
    Caratteri multibyte da copiare.

  • [in] locale
    Impostazioni locali da utilizzare.

Valore restituito

Zero se ha esito positivo; un codice di errore in caso di errore.Se src o dest è NULL, o se più byte di buffSizeinBytes sono stati copiati in dest, il gestore non valido di parametro viene richiamato, come descritto in Convalida dei parametri.Se l'esecuzione è consentita per continuare, le funzioni EINVAL di ritorno e errno è impostata su EINVAL.

Note

La funzione _mbccpy_s copia un carattere multibyte da src a dest.Se src non indica byte iniziale di un carattere multibyte determinato da una chiamata implicita a _ismbblead, il singolo byte in cui i punti di src viene copiato.Se i punti di src a un byte iniziale ma il byte successivo è 0 e non valido, quindi 0 viene copiato in dest, errno è impostato su EILSEQe restituisce EILSEQdi funzione.

_mbccpy_s non aggiunge un terminatore null; tuttavia, se i punti di src a un carattere null, quindi tale null viene copiato in dest si tratta semplicemente una copia a un byte normale).

Il valore in pCopied viene riempito con un numero di byte copiati.I valori possibili sono 1 e 2 se l'operazione ha esito positivo.Se NULL viene passato, questo parametro viene ignorato.

src

copiato in dest

pCopied

Valore restituito

non anticipo byte

non anticipo byte

1

0

0

0

1

0

byte di apertura seguita da non-0

byte di apertura seguita da non-0

2

0

byte di apertura seguita da 0

0

1

EILSEQ

Si noti che la seconda riga è semplicemente un caso speciale del primo.Si noti inoltre che la tabella che il >= pCopieddi buffSizeInBytes.

_mbccpy_s utilizza le impostazioni locali correnti per il comportamento dipendente dalle impostazioni locali._mbccpy_s_l è identico a _mbccpy_s se non che _mbccpy_s_l utilizza le impostazioni locali passate per qualsiasi comportamento dipendente dalle impostazioni locali.

In C++, l'utilizzo di queste funzioni viene semplificato da overload del modello; gli overload possono dedurre la lunghezza del buffer automaticamente, eliminando la necessità di specificare un argomento per la dimensione.Per ulteriori informazioni, vedere Assicurarsi che gli overload del modello.

Mapping di routine a Testo generico

Routine Tchar.h

_UNICODE e _MBCS non definiti

_MBCS definito

_UNICODE definito

_tccpy_s

Mapping alla macro o alla funzione inline.

_mbccpy_s

Mapping alla macro o alla funzione inline.

Requisiti

Routine

Intestazione obbligatoria

_mbccpy_s

<mbstring.h>

_mbccpy_s_l

<mbstring.h>

Per ulteriori informazioni sulla compatibilità, vedere Compatibilità nell'introduzione.

Vedere anche

Riferimenti

Impostazioni locali

Interpretazione delle sequenze di caratteri multibyte

_mbclen, mblen, _mblen_l