Condividi tramite


_mbsnbcat_s, _mbsnbcat_s_l

Aggiunge al massimo a una stringa di caratteri multibyte i primi n byte di un'altra stringa di caratteri multibyte. Queste funzioni sono versioni di , _mbsnbcat_lcon miglioramenti della_mbsnbcat 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 _mbsnbcat_s(
   unsigned char *dest,
   size_t sizeInBytes,
   const unsigned char *src,
   size_t count
);
errno_t _mbsnbcat_s_l(
   unsigned char *dest,
   size_t sizeInBytes,
   const unsigned char *src,
   size_t count,
   _locale_t locale
);
template <size_t size>
errno_t _mbsnbcat_s(
   unsigned char (&dest)[size],
   const unsigned char *src,
   size_t count
); // C++ only
template <size_t size>
errno_t _mbsnbcat_s_l(
   unsigned char (&dest)[size],
   const unsigned char *src,
   size_t count,
   _locale_t locale
); // C++ only

Parametri

dest
Stringa di destinazione di caratteri multibyte con terminazione Null.

sizeInBytes
Dimensione del buffer dest in byte.

src
Stringa di origine di caratteri multibyte con terminazione Null.

count
Numero di byte src da aggiungere a dest.

locale
Impostazioni locali da usare.

Valore restituito

Zero in caso di esito positivo; in caso contrario un codice di errore.

Condizioni di errore

dest sizeInBytes src Valore restituito
NULL qualsiasi qualsiasi EINVAL
Qualsiasi <=0 qualsiasi EINVAL
Qualsiasi qualsiasi NULL EINVAL

Se si verifica una delle condizioni di errore, la funzione genera un errore di parametro non valido, come descritto in Convalida dei parametri. Se l'errore viene gestito, la funzione restituisce EINVAL e imposta errno su EINVAL.

Osservazioni:

La funzione _mbsnbcat_s aggiunge a dest, al massimo, i primi count byte di src. Se il byte che precede immediatamente il carattere Null in dest è un byte iniziale, viene sovrascritto dal byte iniziale di src. In caso contrario, il byte iniziale di src sovrascrive il carattere di terminazione Null di dest. Se un byte null viene visualizzato in src prima che count byte vengano aggiunti, _mbsnbcat_s aggiunge tutti i byte da src fino al carattere null. Se count è maggiore della lunghezza di src, la lunghezza di src viene usata invece di count. La stringa risultante termina con un carattere null. Se la copia avviene tra stringhe che si sovrappongono, il comportamento 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 sono identiche, ad eccezione che quelle che non dispongono del suffisso _l usano le impostazioni locali correnti, mentre quelle che dispongono del suffisso _l usano il parametro delle impostazioni locali passato. Per altre informazioni, vedere Locale.

In C++, l'uso di queste funzioni è semplificato dagli overload dei modelli. Gli overload possono dedurre automaticamente la lunghezza del buffer, eliminando la necessità di specificare un argomento di dimensione e possono usare automaticamente le funzioni più recenti e più sicure per sostituire le funzioni meno recenti e meno 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

Tchar.h Routine _UNICODE e _MBCS non definito _MBCS Definito _UNICODE Definito
_tcsncat_s strncat_s _mbsnbcat_s wcsncat_s
_tcsncat_s_l _strncat_s_l _mbsnbcat_s_l _wcsncat_s_l

Requisiti

Ciclo Intestazione obbligatoria
_mbsnbcat_s <mbstring.h>
_mbsnbcat_s_l <mbstring.h>

Per altre informazioni sulla compatibilità, vedere Compatibility (Compatibilità).

Vedi anche

Manipolazione delle stringhe
_mbsnbcmp, _mbsnbcmp_l
_strncnt, _wcsncnt, _mbsnbcnt, _mbsnbcnt_l, _mbsnccnt, _mbsnccnt_l
_mbsnbcpy, _mbsnbcpy_l
_mbsnbcpy_s, _mbsnbcpy_s_l
_mbsnbset, _mbsnbset_l
strncat, _strncat_l, wcsncat, _wcsncat_l, _mbsncat, _mbsncat_l
strncat_s, _strncat_s_l, wcsncat_s, _wcsncat_s_l, _mbsncat_s, _mbsncat_s_l