Beispiel für das Abrufen einer Nachricht aus einem Katalog
Dieses Beispiel besteht aus drei Teilen: der Nachrichtenquellendatei, dem Befehl zum Generieren der Nachrichtenkatalogdatei und einem Beispielprogramm, das den Nachrichtenkatalog verwendet.
- Das folgende Beispiel zeigt die Nachrichtenquellendatei example.msg :
$quote " $ every message catalog should have a beginning set number. $set MS_SET1 MSG1 "Hello world\n" MSG2 "Good Morning\n" ERRMSG1 "example: 1000.220 Read permission is denied for the file %s.\n" $set MS_SET2 MSG3 "Howdy\n" - Der folgende Befehl verwendet die Nachrichtenquellendatei example.msg , um die Headerdatei example.h und die Katalogdatei example.cat im aktuellen Verzeichnis zu generieren:
runcat example example.msg - Das folgende Beispielprogramm verwendet die Headerdatei example.h und greift auf die Katalogdatei example.cat zu:
#include <locale.h> #include <nl_types.h> #include "example_msg.h" /*contains definitions for symbolic identifiers*/ main() { nl_catd catd; int error; (void)setlocale(LC_ALL, ""); catd = catopen(MF_EXAMPLE, NL_CAT_LOCALE); /* ** Get the message number 1 from the first set. */ printf( catgets(catd,MS_SET1,MSG1,"Hello world\n") ); /* ** Get the message number 1 from the second set. */ printf( catgets(catd, MS_SET2, MSG3,"Howdy\n") ); /* ** Display an error message. */ printf( catgets(catd, MS_SET1, ERRMSG1,"example: 100.220 Permission is denied to read the file %s.\n") , filename); catclose(catd); }