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