Condividi tramite


_mbsnbcpy_s, _mbsnbcpy_s_l

Copia i byte di n di una stringa in una stringa di destinazione.Queste sono versioni di _mbsnbcpy, _mbsnbcpy_l con i miglioramenti della sicurezza come descritto in Funzionalità di sicurezza in CRT.

Nota importanteImportante

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 _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 affinché stringa di caratteri vengano copiati.

  • sizeInBytes
    Dimensione del buffer di destinazione.

  • strSource
    Stringa di caratteri da copiare.

  • count
    Numero di byte da copiare.

  • locale
    Impostazioni locali da utilizzare.

Valore restituito

Zero se ha esito positivo; EINVAL se un parametro non valido è stato passato.

Note

La funzione di _mbsnbcpy_s copia di byte count da strSource a strDest.Se count supera la dimensione di strDest, o stringhe di input è un puntatore null, o sizeInBytes o count è 0, i richiami funzione del gestore non valido di parametro come descritto in Convalida dei parametri.Se l'esecuzione è consentita per continuare, la funzione restituisce EINVAL.Se il database di origine e stringhe di destinazione si sovrappongono, il comportamento di _mbsnbcpy_s è definito.

Il valore di output è interessato dall'impostazione dell'impostazione di categoria LC_CTYPE delle impostazioni locali; vedere setlocale per ulteriori informazioni.Le versioni di queste funzioni senza il suffisso _l utilizzano le impostazioni locali correnti per il comportamento dipendente dalle impostazioni locali; le versioni con il suffisso _l sono identiche, ad eccezione del fatto che utilizzano il parametro delle impostazioni locali che viene passato.Per ulteriori informazioni, vedere Impostazioni locali.

[!NOTA]

A differenza della versione non sicura di questa funzione, _mbsnbcpy_s non esegue alcun riempimento null e NULL termina sempre la stringa.

In C++, l'utilizzo di queste funzioni è semplificato dagli overload dei modelli; gli overload possono dedurre la lunghezza del buffer automaticamente (che elimina la necessità di specificare un argomento di dimensione) e possono sostituire automaticamente le funzioni precedenti, quelle non sicure alle più recenti e le controparti sicure.Per ulteriori informazioni, vedere Assicurarsi che gli overload del modello.

La versione di debug di queste funzioni per prima cosa riempiono il buffer con il valore 0xFD.Per disabilitare questo comportamento, utilizzare _CrtSetDebugFillThreshold.

Mapping di routine a Testo generico

Routine Tchar.h

_UNICODE e _MBCS non definiti

_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

Routine

Intestazione obbligatoria

_mbsnbcpy_s

<mbstring.h>

_mbsnbcpy_s_l

<mbstring.h>

Per ulteriori informazioni sulla compatibilità, vedere Compatibilità nell'introduzione.

Equivalente .NET Framework

Non applicabile. Per chiamare la funzione standard C, utilizzare PInvoke. Per ulteriori informazioni, vedere Esempi di Invocazione della Piattaforma.

Vedere anche

Riferimenti

Modifica delle stringhe (CRT)

_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