Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

vpfmt(3c) [sunos man page]

vpfmt(3C)						   Standard C Library Functions 						 vpfmt(3C)

NAME
vpfmt - display error message in standard format and pass to logging and monitoring services SYNOPSIS
#include <pfmt.h> #include <stdarg.h> 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 <stdarg.h>. The <stdarg.h> header defines the type va_list and a set of macros for advancing through a list of arguments whose number and types may vary. The ap argument is of type va_list. This argument is used with the <stdarg.h> 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. The va_start(ap, ...) call, where ap is of type va_list, must be invoked before any attempt to traverse and access unnamed arguments. 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 is expected to be. The va_end(ap) macro must be invoked when all desired arguments have been accessed. The argu- ment list in 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 to vpfmt() in the argument ap. #include <pfmt.h> #include <stdarg.h> /* * 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 attributes: +-----------------------------+-----------------------------+ | ATTRIBUTE TYPE | ATTRIBUTE VALUE | +-----------------------------+-----------------------------+ |MT-Level |MT-Safe | +-----------------------------+-----------------------------+ SEE ALSO
gettxt(3C), pfmt(3C), attributes(5), stdarg(3EXT) SunOS 5.10 29 Dec 1996 vpfmt(3C)

Check Out this Related Man Page

vlfmt(3C)						   Standard C Library Functions 						 vlfmt(3C)

NAME
vlfmt - display error message in standard format and pass to logging and monitoring services SYNOPSIS
#include <pfmt.h> #include <stdarg.h> int vlfmt(FILE *stream, long flag, const char *format, va_list ap); DESCRIPTION
The vlfmt() function is identical to lfmt(3C), except that it is called with an argument list as defined by <stdarg.h>. The <stdarg.h> header defines the type va_list and a set of macros for advancing through a list of arguments whose number and types may vary. The ap argument is of type va_list. This argument is used with the <stdarg.h> macros va_start(), va_arg(), and va_end(). See stdarg(3EXT). The example in the EXAMPLES section below demonstrates their use with vlfmt(). RETURN VALUES
Upon successful completion, vlfmt() returns the number of bytes transmitted. Otherwise, -1 is returned if there was a write error to stream, or -2 is returned if unable to log and/or display at console. EXAMPLES
Example 1: Use of vlfmt() to write an errlog()routine. The following example demonstrates how vlfmt() could be used to write an errlog() routine. The va_alist() macro is used as the parameter list in a function definition. The va_start(ap, ...) call, where ap is of type va_list, must be invoked before any attempt to traverse and access unnamed arguments. 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 is expected to be. The va_end(ap) macro must be invoked when all desired arguments have been accessed. The argu- ment list in 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 errlog(). The remaining errlog() arguments (arg1, arg2, ...) are passed to vlfmt() in the argument ap. #include <pfmt.h> #include <stdarg.h> /* * errlog should be called like * errlog(log_info, format, arg1, ...); */ void errlog(long log_info, ...) { va_list ap; char *format; va_start(ap, ); format = va_arg(ap, char *); (void) vlfmt(stderr, log_info|MM_ERROR, format, ap); va_end(ap); (void) abort(); } USAGE
Since vlfmt() uses gettxt(3C), it is recommended that vlfmt() not be used. ATTRIBUTES
See attributes(5) for descriptions of the following attributes: +-----------------------------+-----------------------------+ | ATTRIBUTE TYPE | ATTRIBUTE VALUE | +-----------------------------+-----------------------------+ |MT-Level |MT-Safe | +-----------------------------+-----------------------------+ SEE ALSO
gettxt(3C), lfmt(3C), attributes(5), stdarg(3EXT) SunOS 5.10 29 Dec 1996 vlfmt(3C)
Man Page