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


_mbsnbcpy, _mbsnbcpy_l

Копирует n байт строки в целевую строку. Доступны более безопасные версии этих функций— см. раздел _mbsnbcpy_s. _mbsnbcpy_s_l

Внимание

Этот API нельзя использовать в приложениях, выполняемых в среде выполнения Windows. Дополнительные сведения: Функции CRT, которые не поддерживаются в приложениях универсальной платформы Windows.

Синтаксис

unsigned char * _mbsnbcpy(
   unsigned char * strDest,
   const unsigned char * strSource,
   size_t count
);
unsigned char * _mbsnbcpy_l(
   unsigned char * strDest,
   const unsigned char * strSource,
   size_t count,
   _locale_t locale
);
template <size_t size>
unsigned char * _mbsnbcpy(
   unsigned char (&strDest)[size],
   const unsigned char * strSource,
   size_t count
); // C++ only
template <size_t size>
unsigned char * _mbsnbcpy_l(
   unsigned char (&strDest)[size],
   const unsigned char * strSource,
   size_t count,
   _locale_t locale
); // C++ only

Параметры

strDest
Место назначение для копирования строки символов.

strSource
Копируемая строка символов.

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

locale
Используемый языковой стандарт.

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

Функция _mbsnbcpy возвращает указатель на конечную строку символов. Нет зарезервированных возвращаемых значений для указания ошибки.

Замечания

Функция _mbsnbcpy копирует count байт из strSource в strDest. Если count превышает размер strDest или строки источника и назначения перекрываются, поведение функции _mbsnbcpy не определено.

Если strSource или strDest является пустым указателем, эта функция вызывает обработчик недопустимых параметров, как описано в разделе "Проверка параметров". Если выполнение может быть продолжено, функция возвращает NULL и устанавливает для параметра errno значение EINVAL.

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

Внимание

Эти функции могут быть подвержены угрозам переполнения буфера. Переполнение буфера может быть использовано для выполнения произвольного атакующего кода, что может привести к несанкционированному повышению прав доступа и представлять угрозу для системы. Дополнительные сведения см. в разделе "Избегание переполнения буфера".

В C++ эти функции имеют шаблонные перегрузки, которые вызывают более новые и безопасные аналоги этих функций. Дополнительные сведения см. в разделе "Безопасные перегрузки шаблонов".

По умолчанию глобальное состояние этой функции ограничивается приложением. Чтобы изменить это поведение, см . статью "Глобальное состояние" в CRT.

Сопоставления подпрограмм универсального текста

Подпрограмма Tchar.h _UNICODE и _MBCS не определен _MBCS Определенные _UNICODE Определенные
_tcsncpy strncpy _mbsnbcpy wcsncpy
_tcsncpy_l _strncpy_l _mbsnbcp_l _wcsncpy_l

Требования

Маршрут Обязательный заголовок
_mbsnbcpy <mbstring.h>
_mbsnbcpy_l <mbstring.h>

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

См. также

Обработка строк
_mbsnbcat, _mbsnbcat_l
_mbsnbcmp, _mbsnbcmp_l
_strncnt, , _wcsncnt_mbsnbcnt_l_mbsnbcnt_mbsnccnt,_mbsnccnt_l
_mbsnbset, _mbsnbset_l
strncpy, , _strncpy_l_wcsncpy_lwcsncpy_mbsncpy,_mbsncpy_l