#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;
char *vsprintf(s, format, ap) char *s, *format; va_list ap;
int vsprintf(s, format, ap) char *s, *format; va_list ap;
vprintf(), vfprintf(), and vsprintf() are the same as printf.3v fprintf(), and sprintf() (see printf.3v 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
On success, vprintf() and vfprintf() return the number of characters transmitted, excluding the null character. On failure, they return EOF.
vsprintf() returns s.
vsprintf() returns the number of characters transmitted, excluding the null character.
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: 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(); }
Created by unroff & hp-tools. © somebody (See intro for details). All Rights Reserved. Last modified 11/5/97