From 0c9d712a77bbede4808142944776d35f502bffa7 Mon Sep 17 00:00:00 2001 From: Michael Stapelberg Date: Mon, 6 Dec 2010 19:55:19 +0100 Subject: IPC implementiert MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Hat noch einen Bug, sollte aber als Beispiel für die anderen Aufgaben gut genug sein. --- aufgabe4/log.c | 30 ++++++++++++++++++++++++++++-- 1 file changed, 28 insertions(+), 2 deletions(-) (limited to 'aufgabe4/log.c') diff --git a/aufgabe4/log.c b/aufgabe4/log.c index 405cdbd..105f2d3 100644 --- a/aufgabe4/log.c +++ b/aufgabe4/log.c @@ -1,18 +1,44 @@ /* * vim:ts=4:sw=4:expandtab + * + * © 2010 Michael Stapelberg * */ #include #include #include +#include "queue.h" + +FILE *file; + +/* + * Logprozess. Schreibt die empfangenen Daten in eine Datei. + * + */ void log() { - printf("log started\n"); - for (;;) { + /* Datei zum Schreiben öffnen */ + if ((file = fopen("log.txt", "w")) == NULL) { + perror("fopen"); + exit(EXIT_FAILURE); + } + + while (1) { + /* Wir warten auf Nachrichten des CONV-Prozesses */ + while (queue_get_dir() != D_CONV_TO_LOG) + usleep(1); + + uint8_t data = queue_get_data(); + fprintf(file, "%d\n", data); } } +/* + * Cleanup-Funktion (wird als Signalhandler gesetzt). Schließt die Logdatei. + * + */ void log_cleanup() { printf("log cleanup\n"); + fclose(file); _exit(EXIT_SUCCESS); } -- cgit v1.2.3-70-g09d2