Standard C Library Functions vpfmt(3C)
NAME
vpfmt - display error message in standard format and pass to
logging and monitoring servicesSYNOPSIS
#include
#include
int vpfmt(FILE *stream, long flag, const char *format, va_list ap);
DESCRIPTION
The vpfmt() function is identical to pfmt(3C), except that
it is called with an argument list as defined by. The
macros for advancing through a list of arguments whose number and types may vary. The ap argument is of typeheader defines the type va_list and a set of va_list. This argument is used with the
macros va_start(), va_arg(), and va_end(). See stdarg(3EXT). The
example in the EXAMPLES section below demonstrates their use
with vpfmt().
RETURN VALUES
Upon successful completion, vpfmt() returns the number of
bytes transmitted. Otherwise, -1 is returned if there was a
write error to stream.EXAMPLES
Example 1 Use of vpfmt() to write an error routine.
The following example demonstrates how vpfmt() could be used
to write an error() routine. The va_alist() macro is used as
the parameter list in a function definition. Theva_start(ap, ...) call, where ap is of type va_list, must be
invoked before any attempt to traverse and access unnamedarguments. Calls to va_arg(ap, atype) traverse the argument
list. Each execution of va_arg() expands to an expression
with the value and type of the next argument in the list ap,which is the same object initialized by va_start(). The
atype argument is the type that the returned argument isexpected to be. The va_end(ap) macro must be invoked when
all desired arguments have been accessed. The argument listin ap can be traversed again if va_start() is called again
after va_end(). In the example below, va_arg() is executed
first to retrieve the format string passed to error(). The remaining error() arguments (arg1, arg2, ...) are passed tovpfmt() in the argument ap.
SunOS 5.11 Last change: 29 Dec 1996 1
Standard C Library Functions vpfmt(3C)
#include
#include
/* * error should be called like * error(format, arg1, ...); */ void error(...) {va_list ap;
char *format;va_start(ap, );
format = va_arg(ap, char *);
(void) vpfmt(stderr, MM_ERROR, format, ap);
va_end(ap);
(void) abort(); }USAGE
Since vpfmt() uses gettxt(3C), it is recommended that
vpfmt() not be used.
ATTRIBUTES
See attributes(5) for descriptions of the following attri-
butes:____________________________________________________________
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
|_____________________________|_____________________________|
| MT-Level | MT-Safe |
|_____________________________|_____________________________|
SEE ALSO
gettxt(3C), pfmt(3C), attributes(5), stdarg(3EXT)SunOS 5.11 Last change: 29 Dec 1996 2