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 | |