Museum

Home

Lab Overview

Retrotechnology Articles

⇒ Online Manual

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

printf(3V)

varargs(3)

VPRINTF(3V)  —  SYSTEM V LIBRARY

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(3V), 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(3). 

EXAMPLE

The following demonstrates how vfprintf() could be used to write an error routine. 

#include <stdio.h>
#include <varargs.h>
...
/∗  error should be called like:
∗error(function_name, format, arg1, arg2...);
∗  Note that function_name and format cannot be declared
∗  separately because of the definition of varargs.
∗/
/∗VARARGS0∗/
void
error (va_alist)
va_dcl;
{
va_list args;
char ∗fmt;
 va_start(args);
/∗ print 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(3V), varargs(3)

Sun Release 4.0  —  Last change: 24 November 1987

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