_mbsnbcpy_s, _mbsnbcpy_s_l

Copia n byte di una stringa in una stringa di destinazione. Queste versioni di hanno _mbsnbcpy_lmiglioramenti 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 strDestinput è un puntatore Null o sizeInBytescount è 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