mark.zlatoust.ru Послать письмо Webmaster-у Web-Master © Бернадинер Марк 

Златоуст.Ru

 

 

VPRINTF(3S)                                         VPRINTF(3S)

НАЗВАНИЕ 
        vprintf,  vfprintf,  vsprintf  - форматный вывод списка
        аргументов, заданного по правилам varargs

СИНТАКСИС 
        #include 
        #include 
        
        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  
        #include  
           ...
        /*
           Вызов подпрограммы диагностики должен выглядеть так:
                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).



 

 

Бернадинер Марк Абрамович

Мое резюме

Компьютерная страничка

Ресурсы сети

Фотоальбом

 

 

 

mark.zlatoust.ru Послать письмо Webmaster-у Web-Master © Бернадинер Марк