vprintf_s, _vprintf_s_l, vwprintf_s, _vwprintf_s_l
Write форматировало выходные данные с помощью указателя в список аргументов.Здесь представлены версии vprintf, _vprintf_l, vwprintf, _vwprintf_l с усовершенствованной безопасностью, как описано в разделе Средства безопасности в CRT.
int vprintf_s(
const char *format,
va_list argptr
);
int _vprintf_s_l(
const char *format,
locale_t locale,
va_list argptr
);
int vwprintf_s(
const wchar_t *format,
va_list argptr
);
int _vwprintf_s_l(
const wchar_t *format,
locale_t locale,
va_list argptr
);
Параметры
format
Спецификация формата.argptr
Указатель на список аргументов.locale
Используемый языковой стандарт.
Дополнительные сведения см. в разделе Спецификации формата.
Возвращаемое значение
vprintf_s и vwprintf_s возвращают число записанных символов, не включая конечный нуль-символ, или отрицательное значение, если произошла ошибка вывода.Если указатель format, или если строка формата содержит недопустимые символы форматирования, обработчик вызывается недопустимого параметра, как описано в разделе Проверка параметров.Если выполнение может быть продолжено, то функции возвращают -1 и устанавливают errno в EINVAL.
Дополнительные сведения об этих и других кодах ошибок см. в разделе _doserrno, errno, _sys_errlist и _sys_nerr.
Заметки
Каждая из этих функций принимает указатель в список аргументов, то форматам и записывает заданный данных в stdout.
Безопасные версии этих функций отличаются от vprintf и vwprintf в только что безопасные версии проверяют, что строка формата содержит допустимые символы форматирования.
версия vwprintf_s является vprintf_s; 2 функции ведут себя одинаково, если поток открывается в режиме ANSI.vprintf_s в настоящее время не поддерживает вывод в поток в юникоде.
Версии этих функций с суффиксом _l идентичны, за исключением того, что они используют переданный параметр языкового стандарта вместо текущего языкового стандарта потока.
Примечание по безопасности |
---|
Убедитесь, что format не является строкой, определяемой пользователем.Дополнительные сведения см. в разделе Как избежать переполнения буфера. |
Универсальное текстовое сопоставление функций
Функция TCHAR.H |
неопределенные _UNICODE & _MBCS |
определенные _MBCS |
Определение _UNICODE |
---|---|---|---|
_vtprintf_s |
vprintf_s |
vprintf_s |
vwprintf_s |
_vtprintf_s_l |
_vprintf_s_l |
_vprintf_s_l |
_vwprintf_s_l |
Требования
Функция |
Требуемый заголовок |
Необязательные заголовки |
---|---|---|
vprintf_s, _vprintf_s_l |
<stdio.h> и <stdarg.h> |
<varargs.h>* |
vwprintf_s, _vwprintf_s_l |
<stdio.h> или <wchar.h>, и <stdarg.h> |
<varargs.h>* |
* Требуется для обеспечения совместимости с UNIX V.
Консоль не поддерживается в приложениях Магазина Windows.Стандартные дескрипторы потока, связанные с консолью, stdin, stdout и stderr, необходимо перенаправить до функции C времени выполнения могут использовать их в приложениях Магазина Windows.Дополнительные сведения о совместимости см. в разделе Совместимость во введении.
Эквивалент в .NET Framework
См. также
Ссылки
fprintf, _fprintf_l, fwprintf, _fwprintf_l
printf, _printf_l, wprintf, _wprintf_l