Definition | #include <cont.h> void cenaco(struct enacop *enacopar);
Ausführliche Informationen zu Contingency-Routinen finden Sie im Kapitel "Contingency- und STXIT-Routinen" und im Handbuch "Makroaufrufe an den Ablaufteil“ [6]. | ||||||||||||||
Parameter | struct enacop *enacopar Zeiger auf eine Struktur, die in <cont.h> wie folgt definiert ist: struct enacop
{
char resrv1 [7]; /* reserved for int. use */
char coname [54]; /* name of cont. routine */
char resrv2 [15]; /* reserved for int. use */
char level; /* priority of cont.rout. */
int (*econt)(struct contp); /* start adr of cont.rout. */
int comess; /* contingency message */
int coidret; /* contingency identifier */
errcod secind; /* secondary indicator */
char resrv3 [2]; /* reserved for int. use */
errcod rcode1; /* return code */
};
#define errcod char
#define _norm 0 /* normterm */
#define _abnorm 4 /* abnormend */
#define _enabled 4 /* codefenabled */
#define _preven 12 /* coprevenabled */
#define _parerr 16 /* coparerror */
#define _maxexc 24 /* comaxexceed */
Einige Einträge der Parameterstruktur müssen bzw. können Sie vor dem Einträge, die vom Anwender versorgt werden:
Einträge, die von
| ||||||||||||||
Hinweis | Es können maximal 255 Contingency-Routinen definiert werden. | ||||||||||||||
Beispiel | Programmausschnitt zur Definition einer Contingency-Routine. #include <cont.h>
/* Contingency-Routine: controut */
int controut(struct contp contpar)
{
.
.
.
printf("Contingency-Message: %d\n", contpar.comess);
.
.
.
}
/* main-Routine, in der die Routine controut als Contingency-Routine
definiert wird. */
int main(void)
{
.
.
.
struct enacop enacopar;
.
.
.
enacopar.econt = controut;
enacopar.level = 1;
enacopar.comess = 100;
strfill(enacopar.coname, "CONTPROC1 ", sizeof(enacopar.coname));
cenaco(&enacopar);
.
.
.
}
|
Siehe auch cdisco, cstxt, signal, alarm, raise, sleep