_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.
![]() |
---|
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.