vprintf(3S)vprintf(3S)NAMEvprintf(), vfprintf(), vsprintf(), vsnprintf() - print formatted output
of a varargs argument list
SYNOPSISDESCRIPTION
and are the same as and respectively, except that instead of being
called with a variable number of arguments, they are called with an
argument list as defined by
RETURN VALUE
Each function returns the number of bytes transmitted (excluding the
null byte character in the case of or a negative value if an output
error was encountered.
By default, returns a negative value if maxsize is smaller than the
number of characters formatted. In the UNIX 2003 standards environment
(see standards(5)) it returns the number of bytes that would have been
written to buffer s, excluding the terminating null byte, if maxsize
had been sufficiently large.
EXAMPLES
The following demonstrates how could be used to write an error routine:
#include <stdarg.h>
#include <stdio.h>
.
.
.
/*
* error should be called using the form:
* error(function_name, format, arg1, arg2...);
*/
/*VARARGS0*/
void
error(va_alist)
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 ALSOsetlocale(3C), printf(3S), standards(5), thread_safety(5), varargs(5),
glossary(9).
STANDARDS CONFORMANCEvprintf(3S)