_mbsnbcpy_s
, _mbsnbcpy_s_l
Copia n byte di una stringa in una stringa di destinazione. Queste versioni di hanno _mbsnbcpy_l
miglioramenti per_mbsnbcpy
la sicurezza, come descritto in Funzionalità di sicurezza in CRT.
Importante
Non è possibile usare questa API nelle applicazioni eseguite in Windows Runtime. Per altre informazioni, vedere Funzioni CRT non supportate nelle app della piattaforma UWP (Universal Windows Platform).
Sintassi
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
Parametri
strDest
Destinazione per la stringa di caratteri da copiare.
sizeInBytes
Dimensioni del buffer di destinazione.
strSource
Stringa di caratteri da copiare.
count
Numero di byte da copiare.
locale
Impostazioni locali da usare.
Valore restituito
Zero in caso di esito positivo. EINVAL
se viene passato un parametro non valido.
Osservazioni:
La funzione _mbsnbcpy_s
copia count
byte da strSource
a strDest
. Se count
supera le dimensioni di , una delle stringhe di strDest
input è un puntatore Null o sizeInBytes
count
è 0, la funzione richiama il gestore di parametri non validi come descritto in Convalida dei parametri . Se l'esecuzione può continuare, la funzione restituisce EINVAL
. Se le stringhe di origine e di destinazione si sovrappongono, il comportamento di _mbsnbcpy_s
non è definito.
Il valore di output è interessato dall'impostazione dell'impostazione LC_CTYPE
della categoria delle impostazioni locali. Per ulteriori informazioni, vedere setlocale
. Le versioni di queste funzioni senza il suffisso _l
usano le impostazioni locali correnti per questo comportamento dipendente dalle impostazioni locali. Le versioni con il suffisso _l
sono identiche ma usano il parametro passato relativo alle impostazioni locali. Per altre informazioni, vedere Locale.
Nota
Diversamente dalla versione non sicura di questa funzione, _mbsnbcpy_s
non effettua alcun riempimento con Null e usa sempre la terminazione Null per la stringa.
In C++ l'utilizzo di queste funzioni è semplificato dagli overload dei modelli. Gli overload possono dedurre la lunghezza del buffer automaticamente (eliminando la necessità di specificare un argomento di dimensione) e possono sostituire automaticamente le funzioni precedenti e non sicure con le controparti più recenti e sicure. Per altre informazioni, vedere Proteggere gli overload dei modelli.
Le versioni della libreria di debug di queste funzioni riempiono prima di tutto il buffer con 0xFE. Per disabilitare questo comportamento, usare _CrtSetDebugFillThreshold
.
Per impostazione predefinita, lo stato globale di questa funzione è limitato all'applicazione. Per modificare questo comportamento, vedere Stato globale in CRT.
Mapping di routine di testo generico
Routine Tchar.h | _UNICODE e _MBCS non definito |
_MBCS definito |
_UNICODE definito |
---|---|---|---|
_tcsncpy_s |
_strncpy_s |
_mbsnbcpy_s |
_wcsncpy_s |
_tcsncpy_s_l |
_strncpy_s_l |
_mbsnbcpy_s_l |
_wcsncpy_s_l |
Requisiti
Ciclo | Intestazione obbligatoria |
---|---|
_mbsnbcpy_s |
<mbstring.h> |
_mbsnbcpy_s_l |
<mbstring.h> |
Per altre informazioni sulla compatibilità, vedere Compatibility (Compatibilità).
Vedi anche
Manipolazione delle stringhe
_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