CPU Performance Counters Library Functions cpc_seterrfn(3CPC)
NAME
cpc_seterrfn - control libcpc error reporting
SYNOPSIS
cc [ flag... ] file... -lcpc [ library... ]
#include
typedef void (cpc_errfn_t)(const char *fn, const char *fmt, va_list ap);
void cpc_seterrfn(cpc_errfn_t *errfn);
DESCRIPTION
For the convenience of programmers instrumenting their code, several libcpc(3LIB) functions automatically emit to stderr error messages that attempt to provide a more detailed explanation of their error return values. While this can be useful for simple programs, some applications may wish toreport their errors differently-for example, to a window or
to a log file.The cpc_seterrfn() function allows the caller to provide an
alternate function for reporting errors; the type signatureis shown above. The fn argument is passed the library func-
tion name that detected the error, the format string fmt and argument pointer ap can be passed directly to vsnprintf(3C)or similar varargs-based routine for formatting.
The default printing routine can be restored by calling the routine with an errfn argument of NULL.EXAMPLES
Example 1 Debugging example. This example produces error messages only when debugging theprogram containing it, or when the cpc_strtoevent() func-
tion is reporting an error when parsing an event specifica-
tion int debugging; voidmyapp_errfn(const char *fn, const char *fmt, va_list ap)
{ if (strcmp(fn, "strtoevent") != 0 && !debugging) return;(void) fprintf(stderr, "myapp: cpc_%s(): ", fn);
(void) vfprintf(stderr, fmt, ap);SunOS 5.11 Last change: 28 Mar 2005 1
CPU Performance Counters Library Functions cpc_seterrfn(3CPC)
}ATTRIBUTES
See attributes(5) for descriptions of the following attri-
butes:____________________________________________________________
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
|_____________________________|_____________________________|
| MT-Level | Unsafe |
|_____________________________|_____________________________|
| Interface Stability | Obsolete ||_____________________________|_____________________________|
SEE ALSO
cpc(3CPC), cpc_seterrhndlr(3CPC), libcpc(3LIB),
vsnprintf(3C), attributes(5) NOTESThe cpc_seterrfn() function exists for binary compatibility
only. Source containing this function will not compile. This function is obsolete and might be removed in a futurerelease. Applications should use cpc_seterrhndlr(3CPC)
instead.SunOS 5.11 Last change: 28 Mar 2005 2