Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ vlfmt(3C) — svr4 — mips UMIPS RISC/os 5.01

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

lfmt(3C)

stdarg(5)



VLFMT(3C-SVR4)      RISC/os Reference Manual       VLFMT(3C-SVR4)



NAME
     vlfmt - display error message in standard format and pass to
          logging and monitoring services

SYNOPSIS
     #include <stdarg.h>
     #include <pfmt.h>

     int vlfmt(FILE *stream, long flags, char *format, valist ap);

DESCRIPTION
     vlfmt() is the same as lfmt() except that instead of being
     called with a variable number of arguments, it is called
     with an argument list as defined by the <stdarg.h> header
     file.

     The <stdarg.h> header file defines the type va_list and a
     set of macros for advancing through a list of arguments
     whose number and types may vary.  The argument ap to vlfmt()
     is of type va_list.  This argument is used with the
     <stdarg.h> header file macros va_start(), va_arg() and
     va_end() [see va_start(), va_arg(), and va_end() in
     stdarg(5)].  The EXAMPLE section below shows their use with
     vlfmt().

     The macro va_alist is used as the parameter list in a func-
     tion definition as in the function called errlog() in the
     example below.  The macro va_start(ap, ), where ap is of
     type va_list, must be called before any attempt to traverse
     and access unnamed arguments.  Calls to va_arg(ap, atype)
     traverse the argument list.  Each execution of va_arg()
     expands to an expression with the value and type of the next
     argument in the list ap, which is the same object initial-
     ized by va_start.  The argument atype is the type that the
     returned argument is expected to be.  The va_end(ap) macro
     must be invoked when all desired arguments have been
     accessed.  (The argument list in ap can be traversed again
     if va_start() is called again after va_end().)  In the exam-
     ple below, va_arg() is executed first to retrieve the format
     string passed to errlog().  The remaining errlog() argu-
     ments, arg1, arg2, ..., are given to vlfmt() in the argument
     ap.

RETURN VALUE
     Upon success, vlfmt() returns the number of bytes transmit-
     ted.  Upon failure, it returns a negative value:

     -1   write error to stream.

     -2   cannot log and/or display at console.





                        Printed 11/19/92                   Page 1





VLFMT(3C-SVR4)      RISC/os Reference Manual       VLFMT(3C-SVR4)



EXAMPLE
     The following demonstrates how vlfmt() could be used to
     write an errlog() routine:

          #include <pfmt.h>
          #include <stdarg.h>
          /*
           *   errlog should be called like
           *         errlog(log_info, format, arg1, ...);
           */
          void errlog(long log_info, ...)

          {
              va_list ap;
              char *format;
              va_start(ap, );
              format = va_arg(ap, char *);
              (void) vlfmt(stderr, log_info|MM_ERROR, format, ap);
              va_end(ap);
              (void) abort();
          }

SEE ALSO
     lfmt(3C), stdarg(5).































 Page 2                 Printed 11/19/92



Typewritten Software • bear@typewritten.org • Edmonds, WA 98026