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


_mbsnbcat_s, _mbsnbcat_s_l

Записывает в конец многобайтовой символьной строки по крайней мере первые n байт другой многобайтовой строки. Здесь представлены версии _mbsnbcat, _mbsnbcat_l с усовершенствованной безопасностью, как описано в разделе Функции безопасности в CRT.

Важно!

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

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

any

any

EINVAL

Any

<= 0

any

EINVAL

Any

any

NULL

EINVAL

Если срабатывает какое-либо из условий ошибки, то функция генерирует ошибку недопустимого параметра, как описано в разделе Проверка параметров. Если ошибка обработана, функция возвращает EINVAL и устанавливает errno в EINVAL.

Заметки

Функция _mbsnbcat_s добавляет в dest по крайней мере первые count байт src. Если байт непосредственно перед нулевым символом в dest является старшим байтом, он перезаписывается начальным байтом src. В противном случае начальный байт src перезапишет завершающий нулевой символ dest. Если нулевой байт возникает в src прежде, чем добавлено count байтов, _mbsnbcat_s добавляет все байты из src вплоть до нулевого символа. Если count больше, чем длина src, длина src используется вместо count. Результирующая строка завершается нулевым символом. Если копирование производится между перекрывающимися строками, поведение не определено.

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

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

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

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

Подпрограмма Tchar.h

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

_MBCS определено

_UNICODE определено

_tcsncat

strncat

_mbsnbcat_s

wcsncat

_tcsncat_s_l

_strncat_s_l

_mbsnbcat_s_l

_wcsncat_s_l

Требования

Подпрограмма

Обязательный заголовок

_mbsnbcat_s

<mbstring.h>

_mbsnbcat_s_l

<mbstring.h>

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

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

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

См. также

Ссылки

Управление строками (CRT)

_mbsnbcmp, _mbsnbcmp_l

_strncnt, _wcsncnt, _mbsnbcnt, _mbsnbcnt_l, _mbsnccnt, _mbsnccnt_l

_mbsnbcpy, _mbsnbcpy_l

_mbsnbcpy_s, _mbsnbcpy_s_l

_mbsnbset, _mbsnbset_l

strncat, _strncat_l, wcsncat, _wcsncat_l, _mbsncat, _mbsncat_l

strncat_s, _strncat_s_l, wcsncat_s, _wcsncat_s_l, _mbsncat_s, _mbsncat_s_l