Museum

Home

Lab Overview

Retrotechnology Articles

⇒ Online Manual

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

printf(3S)

varargs(7)

VPRINTF(3S)                          BSD                           VPRINTF(3S)



NAME
     vprintf, vfprintf, vsprintf - print formatted output of a varargs
     argument list

SYNOPSIS
     #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;

DESCRIPTION
     vprintf, vfprintf, and vsprintf are the same as printf, fprintf, and
     sprintf respectively, except that instead of being called with a variable
     number of arguments, they are called with an argument list as defined by
     varargs(7).

EXAMPLE
     The following demonstrates the use of vfprintf to write an error routine.

     #include <stdio.h>
     #include <varargs.h>
          .
          .
          .
     /*
      *   error should be called like
      *      error(function_name, format, arg1, arg2...);  */
     /*VARARGS*/
     void
     error(va_alist)
     /* Note that the function_name and format arguments cannot be
      *    separately declared because of the definition of varargs.  */
     va_dcl
     {
          va_list args;
          char *fmt;

          va_start(args);
          /* print out name of function causing error */
          (void)fprintf(stderr, "ERROR in %s: ", va_arg(args, char *));
          fmt = va_arg(args, char *);
          /* print out remainder of message */
          (void)vfprintf(stderr, fmt, args);
          va_end(args);
          (void)abort( );
     }

SEE ALSO
     printf(3S), varargs(7).

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