11 #include "output-plugins/log_ringbuffer.h"
17 void sighandler(int sig
)
19 printf("cleaning up\n");
20 if (shmctl(shm_id
, IPC_RMID
, NULL
) == -1)
26 int init_ringbuffer(struct log_ringbuffer
**rb
) {
30 key
= ftok("/etc/prads/prads.conf", 'R');
31 shm_id
= shmget(key
, sizeof(struct log_ringbuffer
), 0644 | 0);
33 printf("Could not open ringbuffer. Is prads running?\n");
37 buffer
= shmat(shm_id
, (void *)0, 0);
38 if (buffer
== (char*)-1) {
48 int main(int argc
, char *argv
[])
52 struct log_ringbuffer
*ringbuffer
;
54 if ((rc
= init_ringbuffer(&ringbuffer
)) != 0) {
55 fprintf(stderr
, "Could not initialize ringbuffer\n");
59 signal(SIGINT
, &sighandler
);
60 signal(SIGTERM
, &sighandler
);
61 tail
= ringbuffer
->head
;
64 while (tail
!= ringbuffer
->head
) {
65 printf("%s\n", ringbuffer
->items
[tail
].text
);
67 tail
= (tail
== (RINGBUFFER_ITEMS
-1)) ? 0 : tail
+1;