Поделиться через


_mbsnbcpy_s, _mbsnbcpy_s_l

Копирует байт n строки в строке назначения.Здесь представлены версии _mbsnbcpy, _mbsnbcpy_l с усовершенствованной безопасностью, как описано в разделе Средства безопасности в CRT.

Важное примечаниеВажно

Этот API нельзя использовать в приложениях, запускаемых в среде выполнения Windows.Дополнительные сведения см. в разделе Функции CRT не поддерживаются при /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

Параметры

  • strDest
    Назначение для символьной строки для копирования.

  • sizeInBytes
    Размер буфера назначения.

  • strSource
    Символьная строка, которые нужно скопировать.

  • count
    Число байтов для копирования.

  • locale
    Языковой стандарт, который необходимо использовать.

Возвращаемое значение

Ноль при успешном; значение EINVAL, если недопустимый параметр передается в.

Заметки

Функция _mbsnbcpy_s копирует байт count с strSource на strDest.Если count, то размер превышает strDest или входных строк указатель, sizeInBytes или count 0 функция вызывается обработчик недопустимого параметра, как описано в разделе Проверка параметров.Если среда выполнения может продолжить, функция возвращает EINVAL.Если строки источника и назначения перекрываются, расширения функциональности _mbsnbcpy_s не определено.

Выходное значение зависеть на параметром параметра категории LC_CTYPE языкового стандарта; дополнительные сведения см. в разделе setlocale.Версии этих функций без суффикса _l используют текущий языковой стандарт для данной функциональности, зависящей от языкового стандарта; версии с суффиксом _l идентичны, за исключением того, что они используют переданный параметр языкового стандарта.Для получения дополнительной информации см. Языковой стандарт.

ПримечаниеПримечание

В отличие от не осуществлять версию этой функции _mbsnbcpy_s не делает предположений NULL заполнений и всегда NULL завершит строку.

В C++ использование данных функций упрощено наличием шаблонных перегрузок; перегруженные методы могут автоматически определять длину буфера (что исключает необходимость указания аргумента с размером буфера), а также они могут автоматически заменять более старые, незащищенные функции их новыми безопасными аналогами.Для получения дополнительной информации см. Предоставляйте перегруженный шаблона.

Отладочные версии этих функций сначала заполняют буфер значением 0xFD.Для отключения данного поведения используйте _CrtSetDebugFillThreshold.

Универсальное текстовое сопоставление функций

Подпрограмма TCHAR.H

Не указаны _UNICODE и _MBCS

определенные _MBCS

Определение _UNICODE

_tcsncpy_s

_strncpy_s

_mbsnbcpy_s

_wcsncpy_s

_tcsncpy_s_l

_strncpy_s_l

_mbsnbcpy_s_l

_wcsncpy_s_l

Требования

Функция

Требуемый заголовок

_mbsnbcpy_s

<mbstring.h>

_mbsnbcpy_s_l

<mbstring.h>

Дополнительные сведения о совместимости см. в разделе Совместимость во введении.

Эквивалент в .NET Framework

Неприменимо. Для вызова стандартной функции C используйте PInvoke. Дополнительные сведения см. в разделе Примеры вызовов неуправляемого кода.

См. также

Ссылки

Управление строками (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