_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_l
wcsncpy
_mbsncpy
,_mbsncpy_l