">
НАЗВАНИЕ
vprintf, vfprintf, vsprintf - форматный вывод списка
аргументов, заданного по правилам varargs
СИНТАКСИС
#include <stdio.h> #include <varargs.h> int vprintf (format, ap) char *format; va_list ap; int vfprintf (stream, format, ap) FILE *stream; char *format; va_list ap; int vsprintf (s, format, ap) char *s, *format; va_list ap;
ОПИСАНИЕ
Функции vprintf, vfprintf, vsprintf эквивалентны функ-
циям printf, fprintf, sprintf соответственно, но вместо
явного списка аргументов переменной длины им передается
список, заданный по правилам varargs(5).
ПРИМЕР
В следующем примере показано, как можно использовать
vfprintf для вывода диагностики.
#include <stdio.h> #include <varargs.h> ... /* Вызов подпрограммы диагностики должен выглядеть так: error(имя_функции, формат, арг1, арг2 ...); */ /*VARARGS*/ void error (va_alist) /*
Отметим, что аргументы имя_функции и формат не могут быть продекларированы отдельно в силу определения varargs.
*/ va_dcl { va_list args; char *fmt; va_start(args) /* Печать имени функции, вызвавшей ошибку */ (void) fprintf (stderr, "ERROR in %s: ", va_arg(args,char *)); fmt = va_arg(args, char *); /* Печать оставшейся части сообщения */ (void) vfprintf (stderr, fmt, args); va_end(args); (void) abort (); }
СМ. ТАКЖЕ
printf(3S), varargs(5).