Museum

Home

Lab Overview

Retrotechnology Articles

⇒ Online Manual

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

printf(3S)

varargs(5)



          VPRINTF(3S)          INTERACTIVE UNIX System          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
               The vprintf, vfprintf, and vsprintf functions 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(5).




























          Rev. C Software Development Set                            Page 1





          VPRINTF(3S)          INTERACTIVE UNIX System          VPRINTF(3S)



          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(5).
























          Rev. C Software Development Set                            Page 2



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