Definition | #include <setjmp.h> void longjmp(jmp_buf env, int wert);
| |
Parameter | jmp_buf env Feld, in das setjmp seine Werte abgelegt hat. Der Typ int wert Ganze Zahl, die beim Wiederaufsetzen der Programmausführung als Rückgabewert des | |
Hinweise | Das Verhalten ist undefiniert, wenn Die Funktion, die den Nicht lokale Sprünge sind nützlich bei der Unterbrechungsbehandlung (siehe Beim Wiederaufsetzen der Programmausführung sind die Variablen wie nach einem | |
Beispiel | Ein typischer Anwendungsfall für #include <stdio.h> #include <setjmp.h> #include <signal.h> FILE *fp; jmp_buf env; void intr(int sig) { printf("\n ***** Sie wollen den Text nicht? ****** \n"); longjmp(env,0); } int main(void) { int c; char reply; setjmp(env); signal(SIGINT,intr); printf("Textausgabe? (y?n):\n"); scanf("%1s",&reply); /* Unterbrechung mit K2 möglich */ if(reply == 'y') { fp = fopen("text","r"); /* Datei text muss existieren */ while((c=getc(fp)) != EOF) putc((char)c,stdout); /* Unterbrechung der Textausgabe mit K2 nach "please acknowledge" möglich */ } else printf("Keine Textausgabe\n"); return 0; } | |
Siehe auch | setjmp, signal |