_mbsnbcat_s
, _mbsnbcat_s_l
Добавляется к строке многобайтового символа, по крайней мере, первые n байт другой многобайтовой строки. Эти функции являются версиями _mbsnbcat
, _mbsnbcat_l
которые имеют улучшения безопасности, как описано в функциях безопасности в CRT.
Внимание
Этот API нельзя использовать в приложениях, выполняемых в среде выполнения Windows. Дополнительные сведения: Функции CRT, которые не поддерживаются в приложениях универсальной платформы Windows.
Синтаксис
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
Параметры
dest
Многобайтовая строка назначения, завершаемая нуль-символом.
sizeInBytes
Размер буфера dest
в байтах.
src
Исходная многобайтовая строка, завершаемая нуль-символом.
count
Число байтов из src
, добавляемых к dest
.
locale
Используемый языковой стандарт.
Возвращаемое значение
Ноль в случае успешного выполнения; в противном случае — код ошибки.
Условия ошибок
dest |
sizeInBytes |
src |
Возвращаемое значение |
---|---|---|---|
NULL |
любое | любое | EINVAL |
Любой | <= 0 | любое | EINVAL |
Любой | любое | NULL |
EINVAL |
Если возникают какие-либо из условий ошибки, функция создает недопустимую ошибку параметра, как описано в разделе "Проверка параметров". Если ошибка обработана, функция возвращает EINVAL
и задает для параметра errno
значение EINVAL
.
Замечания
Функция _mbsnbcat_s
добавляет в строку dest
не более count
первых байт строки src
. Если байт, который сразу же предшествует значению NULL, dest
является байтом свинца, он перезаписывается начальным байтом src
. В противном случае начальный байт строки src
перезаписывает завершающий нуль-символ строки dest
. Если байт NULL встречается в строке src
до того как будет добавлено count
байтов, функция _mbsnbcat_s
добавляет все байты из строки src
вплоть до нуль-символа. Если значение count
больше длины строки src
, вместо параметра src
используется длина строки count
. Результирующая строка завершается нуль-символом. Если копирование производится между перекрывающимися строками, поведение не определено.
Выходное значение зависит от параметра LC_CTYPE
категории языкового стандарта. Дополнительные сведения см. в разделе setlocale
. Версии этих функций идентичны, но в версиях без суффикса _l
используется текущий языковой стандарт, а в версиях с суффиксом _l
используется переданный параметр языкового стандарта. Дополнительные сведения см. в разделе Locale.
В C++использование этих функций упрощается перегрузками шаблонов. Перегрузки могут автоматически выводить длину буфера, что устраняет необходимость указать аргумент размера, и они могут автоматически использовать более новые, более безопасные функции для замены старых, менее безопасных функций. Дополнительные сведения см. в разделе "Безопасные перегрузки шаблонов".
Версии библиотек отладки этих функций сначала заполняют буфер 0xFE. Чтобы отключить это поведение, используйте _CrtSetDebugFillThreshold
.
По умолчанию глобальное состояние этой функции ограничивается приложением. Чтобы изменить это поведение, см . статью "Глобальное состояние" в CRT.
Сопоставления подпрограмм универсального текста
Tchar.h рутина |
_UNICODE и _MBCS не определен |
_MBCS Определенные |
_UNICODE Определенные |
---|---|---|---|
_tcsncat_s |
strncat_s |
_mbsnbcat_s |
wcsncat_s |
_tcsncat_s_l |
_strncat_s_l |
_mbsnbcat_s_l |
_wcsncat_s_l |
Требования
Маршрут | Обязательный заголовок |
---|---|
_mbsnbcat_s |
<mbstring.h> |
_mbsnbcat_s_l |
<mbstring.h> |
Дополнительные сведения о совместимости см. в разделе Совместимость.
См. также
Обработка строк
_mbsnbcmp
, _mbsnbcmp_l
_strncnt
, , _wcsncnt
_mbsnbcnt_l
_mbsnbcnt
_mbsnccnt
,_mbsnccnt_l
_mbsnbcpy
, _mbsnbcpy_l
_mbsnbcpy_s
, _mbsnbcpy_s_l
_mbsnbset
, _mbsnbset_l
strncat
, , _strncat_l
_wcsncat_l
wcsncat
_mbsncat
,_mbsncat_l
strncat_s
, , _strncat_s_l
_wcsncat_s_l
wcsncat_s
_mbsncat_s
,_mbsncat_s_l