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


vfprintf, _vfprintf_l, vfwprintf, _vfwprintf_l

Записывают форматированные выходные данные с помощью указателя на список аргументов. Существуют более безопасные версии этих функций; см. раздел vfprintf_s, _vfprintf_s_l, vfwprintf_s, _vfwprintf_s_l.

int vfprintf(
   FILE *stream,
   const char *format,
   va_list argptr 
);
int _vfprintf_l(
   FILE *stream,
   const char *format,
   locale_t locale,
   va_list argptr 
);
int vfwprintf(
   FILE *stream,
   const wchar_t *format,
   va_list argptr 
);
int _vfwprintf_l(
   FILE *stream,
   const wchar_t *format,
   locale_t locale,
   va_list argptr 
);

Параметры

  • stream
    Указатель на структуру FILE.

  • format
    Спецификация формата.

  • argptr
    Указатель на список аргументов.

  • locale
    Используемый языковой стандарт.

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

Возвращаемое значение

vfprintf и vfwprintf возвращают число записанных символов, не включая конечный нуль-символ, или отрицательное значение, если произошла ошибка вывода. Если либо stream, либо format является указателем на null, то вызывается обработчик недопустимого параметра, как описано в разделе Проверка параметров. Если выполнение может быть продолжено, то функции возвращают -1 и устанавливают errno в EINVAL.

Дополнительные сведения об этих и других кодах ошибок см. в разделе _doserrno, errno, _sys_errlist и _sys_nerr.

Заметки

Каждая из этих функций принимает в список аргументов указатель, затем форматирует и записывает указанные данные в stream.

vfwprintf является версией vfprintf для расширенных символов; две функции ведут себя одинаково, если поток открывается в режиме ANSI. vfprintf в настоящее время не поддерживает вывод в поток в юникоде.

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

Примечание о безопасностиПримечание по безопасности

Убедитесь, что format не является строкой, определяемой пользователем.Дополнительные сведения см. в разделе Как избежать переполнения буфера.

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

Подпрограмма TCHAR.H

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

_MBCS определено

_UNICODE определено

_vftprintf

vfprintf

vfprintf

vfwprintf

_vftprintf_l

_vfprintf_l

_vfprintf_l

_vfwprintf_l

Требования

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

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

Необязательные заголовки

vfprintf, _vfprintf_l

<stdio.h> и <stdarg.h>

<varargs.h>*

vfwprintf, _vfwprintf_l

<stdio.h> или <wchar.h> и <stdarg.h>

<varargs.h>*

* Требуется для обеспечения совместимости с UNIX V.

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

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

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

См. также

Ссылки

Потоковый ввод-вывод

Функции vprintf

fprintf, _fprintf_l, fwprintf, _fwprintf_l

printf, _printf_l, wprintf, _wprintf_l

sprintf, _sprintf_l, swprintf, _swprintf_l, __swprintf_l

va_arg, va_copy, va_end, va_start