_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 |
_mbsnbcat_s |
||
_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. Для получения дополнительной информации см. Примеры вызовов неуправляемого кода.
См. также
Ссылки
_strncnt, _wcsncnt, _mbsnbcnt, _mbsnbcnt_l, _mbsnccnt, _mbsnccnt_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