| Сервер поддерживается Центром Информационных Технологий (095) 932-9212, 932-9213, 939-0783 E-mail: info@citforum.ru

Сервер содержит море(!) аналитической информации | CIT Forum CD-ROM

### VPRINTF(3S)

НАЗВАНИЕ
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).

Comments: info@citmgu.ru Designed by Andrey Novikov Copyright © CIT