|
|
1.1 root 1: #include <signal.h>
2: #include <setjmp.h>
3: jmp_buf helpme;
4: int stop;
5: int catchintr();
6: catchintr()
7: {
8: char *cot = "Caught the silly interrupt\n";
9: signal(SIGSEGV, SIG_IGN);
10: write(1, cot, strlen(cot));
11: printf("Caught interrupt\n");
12: stop++;
13: signal(SIGSEGV, catchintr);
14: longjmp(helpme, 3);
15: }
16:
17: main()
18: {
19: char *cp;
20: int c;
21:
22: stop = 0;
23: signal(SIGSEGV, catchintr);
24: if(setjmp(helpme) == 0) {
25: cp = (char *) 0x1A00;
26: c = *cp;
27: }
28:
29: printf("stop is %d\n", stop);
30: exit (0);
31: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.