Used by object classes for printing error messages.
[dyninst.git] / pdutil / src / lprintf.C
1 /************************************************************************
2  * lprintf.c: printf-like error functions.
3 ************************************************************************/
4
5
6 \f
7
8
9 /************************************************************************
10  * header files.
11 ************************************************************************/
12
13 #include <errno.h>
14 #include <stdio.h>
15 #include <stdarg.h>
16
17 #include "lprintf.h"
18
19
20 \f
21
22
23 /************************************************************************
24  * void log_msg(const char* msg)
25  * void log_printf(void (*pfunc)(const char *), const char* fmt, ...)
26  * void log_perror(void (*pfunc)(const char *), const char* msg)
27  *
28  * error printing functions.
29 ************************************************************************/
30
31 static char log_buffer[8192];
32
33 void log_msg(const char* msg) {
34     fprintf(stderr, "%s", msg);
35 }
36
37 void
38 log_printf(void (*pfunc)(const char *), const char* fmt, ...) {
39     va_list ap;
40     va_start(ap, fmt);
41     vsprintf(log_buffer, fmt, ap);
42     va_end(ap);
43     pfunc(log_buffer);
44 }
45
46 void
47 log_perror(void (*pfunc)(const char *), const char* msg) {
48     extern char* sys_errlist[];
49     sprintf(log_buffer, "%s: %s\n", msg, sys_errlist[errno]);
50     pfunc(log_buffer);
51 }