diff --git a/include/glibtop/error.h b/include/glibtop/error.h index adb85828..915554c9 100644 --- a/include/glibtop/error.h +++ b/include/glibtop/error.h @@ -27,8 +27,16 @@ __BEGIN_DECLS #define glibtop_error(p1, args...) glibtop_error_r(glibtop_global_server , p1 , ## args) +#define glibtop_warn(p1, args...) glibtop_warn_r(glibtop_global_server , p1 , ## args) + +#define glibtop_error_io(p1, args...) glibtop_error_io_r(glibtop_global_server , p1 , ## args) +#define glibtop_warn_io(p1, args...) glibtop_warn_io_r(glibtop_global_server , p1 , ## args) extern void glibtop_error_r __P((glibtop *, char *, ...)); +extern void glibtop_warn_r __P((glibtop *, char *, ...)); + +extern void glibtop_error_io_r __P((glibtop *, char *, ...)); +extern void glibtop_warn_io_r __P((glibtop *, char *, ...)); __END_DECLS diff --git a/sysdeps/common/error.c b/sysdeps/common/error.c index 2424d11c..55e9e265 100644 --- a/sysdeps/common/error.c +++ b/sysdeps/common/error.c @@ -37,3 +37,46 @@ glibtop_error_r (glibtop *server, char *format, ...) va_end (ap); exit (1); } + +void +glibtop_error_io_r (glibtop *server, char *format, ...) +{ + va_list ap; + + va_start (ap, format); + + fprintf (stderr, "%s: ", server->name); + vfprintf (stderr, format, ap); + fprintf (stderr, ": %s\n", strerror (errno)); + + va_end (ap); + exit (1); +} + +void +glibtop_warn_r (glibtop *server, char *format, ...) +{ + va_list ap; + + va_start (ap, format); + + fprintf (stderr, "%s: ", server->name); + vfprintf (stderr, format, ap); + fprintf (stderr, "\n"); + + va_end (ap); +} + +void +glibtop_warn_io_r (glibtop *server, char *format, ...) +{ + va_list ap; + + va_start (ap, format); + + fprintf (stderr, "%s: ", server->name); + vfprintf (stderr, format, ap); + fprintf (stderr, ": %s\n", strerror (errno)); + + va_end (ap); +}