Pristine Ack-5.5
[Ack-5.5.git] / util / int / test / set.c
1 /* $Id: set.c,v 1.2 1994/06/24 10:50:59 ceriel Exp $ */
2
3 /*
4         Test combination of signal and setjmp/longjmp
5 */
6
7 #include <setjmp.h>
8 #include <signal.h>
9
10 jmp_buf jb;
11 void a(), b(); 
12
13 main()
14 {
15         char c;
16
17         signal( SIGINT, a );
18         signal( SIGQUIT, b );
19         switch( setjmp( jb ) ) {
20             case 0: write( 1, "start\n", 6 ); break;
21             case 1: write( 1, "int\n", 4 ); break;
22             case 2: write( 1, "quit\n", 5 ); break;
23         }
24         while(read(0, &c, 1));
25         
26 }
27
28 void a(){ signal( SIGINT, a ); longjmp( jb, 1 ); }
29 void b(){ signal( SIGQUIT, b ); longjmp( jb, 2 ); }