1 /* ---------------------------------------------------------------------------
2 * This software is in the public domain, furnished "as is", without technical
3 * support, and with no warranty, express or implied, as to its usefulness for
7 * Interface for C programs to log remotely to a gauger server
9 * Author: Bartlomiej Polot
10 * -------------------------------------------------------------------------*/
18 #define GAUGER(category, counter, value, unit) \
20 char*__gauger_v[10]; \
21 char __gauger_s[32]; \
23 if (! (__gauger_p = fork ())) { \
27 sprintf (__gauger_s, "%Lf", (long double) (value)); \
28 __gauger_v[0] = "gauger"; \
29 __gauger_v[1] = "-n"; \
30 __gauger_v[2] = (char *) (counter); \
31 __gauger_v[3] = "-d"; \
32 __gauger_v[4] = __gauger_s; \
33 __gauger_v[5] = "-u"; \
34 __gauger_v[6] = (char *) (unit); \
35 __gauger_v[7] = "-c"; \
36 __gauger_v[8] = (char *) (category); \
37 __gauger_v[9] = (char *) NULL; \
38 execvp ("gauger", __gauger_v); \
44 waitpid (__gauger_p, NULL, 0); \
48 #define GAUGER_ID(category, counter, value, unit, id) \
50 char*__gauger_v[12]; \
51 char __gauger_s[32]; \
53 if (! (__gauger_p = fork ())) { \
57 sprintf (__gauger_s, "%Lf", (long double) (value)); \
58 __gauger_v[0] = "gauger"; \
59 __gauger_v[1] = "-n"; \
60 __gauger_v[2] = (char *) (counter); \
61 __gauger_v[3] = "-d"; \
62 __gauger_v[4] = __gauger_s; \
63 __gauger_v[5] = "-u"; \
64 __gauger_v[6] = (char *) (unit); \
65 __gauger_v[7] = "-i"; \
67 __gauger_v[9] = "-c"; \
68 __gauger_v[10] = (char *) (category); \
69 __gauger_v[11] = (char *) NULL; \
70 execvp ("gauger", __gauger_v); \
76 waitpid (__gauger_p, NULL, 0); \