_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_l
con 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