next up previous contents index
Next: Environment-Variablen Up: Referenz-Handbuch Previous: Tracing : g_trace.c

Meldungsausgabe g_msg.c

   Die Klasse  G_msg dient der Steuerung der Ausgabe von Warn- und Fehlermeldungen. Die auszugebenden Meldungen werden aus einer Datei gelesen, die sich einem der von Environmentvariable  G_MSGPATH angegebenen Verzeichnisse befindet. Mit der Methode  addDirectory() können weitere Verzeichnisse angegeben werden.

Für die unterschiedlichen Arten der Meldungen gibt es drei global verfügbare Instanzen der Klasse  G_msg.

G_warning
   Die Meldungen werden formatiert und mit dem Kopftext für Warnmeldungen ausgegeben.
G_error
  Diese Meldungen werden mit dem Kopftext für Fehlermeldungen ausgegeben. Gleichzeitig werden diese Meldungen gezählt. Wenn der Wert aus der Umgebungsvariablen  G_MAXERROR überschritten wird, wird das Programm mit dem Aufruf der Systemfunktion exit(1) abgebrochen.
G_fatal
  Diese Meldungen werden mit dem Kopftext für fatale Fehler ausgeben. Danach wird das Programm sofort mit einem Funktionsaufruf exit(2) abgebrochen.


void G_msg::msg (int nr, const char *group, const char *fun, ...)   
Gibt die Meldung mit der Nummer nr zur  Gruppe group evtl. mit weiteren Parametern in die Standardfehlerausgabe (stderr) als Meldung aus. Dabei wird fun als diejenige Funktion angegeben, die die Fehlersituation erkannt hat. fun darf Umwandlungsspezifizierer enthalten, für die weitere Parameter übergeben werden müssen. Das Labor lädt dazu den Text dieser Meldung aus einer Datei mit dem Namen msggroup aus einem der in Variable  G_MSGPATH angegebenen Verzeichnisse. Enthält dieser Text Umwandlungsspezifizierer gemäß der Standardfunktion printf() (z.B. %d, %s etc.), müssen der Methode entsprechend weitere Parameter übergeben werden.
Bemerkungen:
Zum Format der Meldungstextdateien siehe Anhang.
Fehlerfälle:
Es wird folgende Meldung ausgegeben.
Falls die Fehlermeldungsdatei nicht geöffnet werden kann, wird anstelle des Fehlermeldungstextes die Nachricht ,,Can't open message file fileName`` ausgegeben. Falls die Meldungsdatei zwar geöffnet werden kann, sie aber keine Meldung mit der geforderten Nummer enthält, wird die Nachricht ,,Can't find message number nr`` ausgegeben.

static void G_msg::setHeaders (const char *fileName)   
Liest die Einleitungstexte der Meldungen aus der Datei fileName ein. Zum Format dieser Datei siehe Anhang.

static void G_msg::addDirectory (const char *directory)   
Fügt das Verzeichnis directory zu den Verzeichnissen hinzu, in denen nach Meldungsdateien gesucht werden soll.

next up previous contents index
Next: Environment-Variablen Up: Referenz-Handbuch Previous: Tracing : g_trace.c
Friedbert Widmann
7/20/2003