Функции vprintf
Каждая из функций vprintf принимает указатель на список аргументов, затем форматирует и записывает полученные данные в определенное местоположение. Функции отличаются выполняемой проверкой параметров, тем, принимают ли функции многобайтовые или однобайтовые символьные строки, выходным местоназначением и поддержкой указания порядка, в котором параметры используются в строке форматирования.
Заметки
Функции vprintf аналогичны эквивалентным им функциям, указанным в приведенной ниже таблице. Однако каждая функция vprintf принимает указатель на список аргументов, в то время как каждая из функций-аналогов принимает список аргументов.
Эти функции форматируют данные для вывода в местоназначение следующим образом.
Функция |
Функция-аналог |
Назначение вывода |
Проверка параметров |
Поддержка позиционного параметра |
---|---|---|---|---|
_vcprintf |
консоль |
Проверка на значение null. |
нет |
|
_vcwprintf |
консоль |
Проверка на значение null. |
нет |
|
vfprintf |
Поток |
Проверка на значение null. |
нет |
|
vfprintf_p |
Поток |
Проверка допустимого формата и проверка на значение null. |
да |
|
vfprintf_s |
Поток |
Проверка допустимого формата и проверка на значение null. |
нет |
|
vfwprintf |
Поток |
Проверка на значение null. |
нет |
|
vfwprintf_p |
Поток |
Проверка допустимого формата и проверка на значение null. |
да |
|
vfwprintf_s |
Поток |
Проверка допустимого формата и проверка на значение null. |
нет |
|
vprintf |
Stdout |
Проверка на значение null. |
нет |
|
vprintf_p |
Stdout |
Проверка допустимого формата и проверка на значение null. |
да |
|
vprintf_s |
Stdout |
Проверка допустимого формата и проверка на значение null. |
нет |
|
vwprintf |
Stdout |
Проверка на значение null. |
нет |
|
vwprintf_p |
Stdout |
Проверка допустимого формата и проверка на значение null. |
да |
|
vwprintf_s |
Stdout |
Проверка допустимого формата и проверка на значение null. |
нет |
|
vsprintf |
память, указанная в buffer |
Проверка на значение null. |
нет |
|
vsprintf_p |
память, указанная в buffer |
Проверка допустимого формата и проверка на значение null. |
да |
|
vsprintf_s |
память, указанная в buffer |
Проверка допустимого формата и проверка на значение null. |
нет |
|
vswprintf |
память, указанная в buffer |
Проверка на значение null. |
нет |
|
vswprintf_p |
память, указанная в buffer |
Проверка допустимого формата и проверка на значение null. |
да |
|
vswprintf_s |
память, указанная в buffer |
Проверка допустимого формата и проверка на значение null. |
нет |
|
_vscprintf |
память, указанная в buffer |
Проверка на значение null. |
нет |
|
_vscwprintf |
память, указанная в buffer |
Проверка на значение null. |
нет |
|
_vsnprintf |
память, указанная в buffer |
Проверка на значение null. |
нет |
|
_vsnwprintf |
память, указанная в buffer |
Проверка на значение null. |
нет |
Аргумент argptr имеет тип va_list, который определен в VARARGS.H и STDARG.H. Переменная argptr должна быть инициализирована va_start, и может быть повторно инициализирована последующими вызовами va_arg; argptr затем указывает на начало списка аргументов, которые конвертируются и передаются на выход в соответствии со спецификациями в аргументе format. format имеет ту же форму и функцию, как и аргумента format для printf. Ни одна из этих функций не вызывает va_end. Более полное описание каждой функции vprintf смотрите в описании ее функции-аналога, как показано в приведенной выше таблице.
_vsnprintf отличается от vsprintf тем, что она записывает не более чем count байтов в buffer.
Версии этих функций с инфиксом w в имени являются версиями с многобайтовыми символами соответствующих функций без инфикса w; в каждой из этих функций с многобайтовыми символами buffer и format являются строками многобайтовых символов. В противном случае каждая функция с многобайтовыми символами работает так же, как ее функция-аналог со строками однобайтовых символов.
Версии этих функций с суффиксами _s и _p являются более безопасными. Эти версии проверяют строки форматирования и создают исключение, если строка форматирования сформирована неправильно (например, если используются недопустимые символы форматирования).
Версии этих функций с суффиксом _p предоставляют возможность определить порядок, в котором указанные аргументы подставляются в строке форматирования. Для получения дополнительной информации см. Позиционные параметры printf_p.
Для vsprintf, vswprintf, _vsnprintf и _vsnwprintf, для копирования, происходящего между строками, которые перекрываются, поведение не определено.
![]() |
---|
Убедитесь, что format не является строкой, определяемой пользователем.Дополнительные сведения см. в разделе Как избежать переполнения буфера.При использовании безопасных версий этих функций (либо суффикс _s, либо _p ) предоставленная пользователем строка форматирования может активировать исключение, связанное с недопустимым параметром, если эта строка содержит недопустимые символы форматирования. |
См. также
Ссылки
fprintf, _fprintf_l, fwprintf, _fwprintf_l
printf, _printf_l, wprintf, _wprintf_l