aboutsummaryrefslogtreecommitdiff
path: root/aufgabe4/monitor.c
diff options
context:
space:
mode:
authorMichael Stapelberg <michael@stapelberg.de>2010-12-06 19:55:19 +0100
committerMichael Stapelberg <michael@stapelberg.de>2010-12-06 19:55:19 +0100
commit0c9d712a77bbede4808142944776d35f502bffa7 (patch)
tree1955e375d404308aa1d79b9d355e37dba739b9bf /aufgabe4/monitor.c
parent9af2bea582c083653c08abb965eba6f63de997fa (diff)
downloadprozesskommunikation-0c9d712a77bbede4808142944776d35f502bffa7.tar.gz
prozesskommunikation-0c9d712a77bbede4808142944776d35f502bffa7.tar.bz2
IPC implementiert
Hat noch einen Bug, sollte aber als Beispiel für die anderen Aufgaben gut genug sein.
Diffstat (limited to 'aufgabe4/monitor.c')
-rw-r--r--aufgabe4/monitor.c21
1 files changed, 19 insertions, 2 deletions
diff --git a/aufgabe4/monitor.c b/aufgabe4/monitor.c
index b631e59..e2bf015 100644
--- a/aufgabe4/monitor.c
+++ b/aufgabe4/monitor.c
@@ -1,18 +1,35 @@
/*
* vim:ts=4:sw=4:expandtab
+ *
+ * © 2010 Michael Stapelberg
*
*/
#include <stdlib.h>
#include <stdio.h>
#include <unistd.h>
+#include "queue.h"
+
+/*
+ * Monitor-Prozess. Gibt die empfangenen Daten aus.
+ *
+ */
void monitor() {
- printf("monitor started\n");
for (;;) {
+ /* Wir warten auf Nachrichten des CONV-Prozesses */
+ while (queue_get_dir() != D_STAT_TO_MON)
+ usleep(1);
+
+ uint8_t data = queue_get_data();
+ printf("Empfangenes Datum: %d\n", data);
+ fflush(stdout);
}
}
+/*
+ * Cleanup-Funktion. Beendet den Prozess.
+ *
+ */
void monitor_cleanup() {
- printf("monitor cleanup\n");
_exit(EXIT_SUCCESS);
}