blob: 8a757f90b78964350d854f40c732a967e7c62736 [file] [log] [blame]
sewardj0ca2a6b2002-03-29 14:02:34 +00001
2#include <errno.h>
3#include <stdio.h>
4#include <signal.h>
5#include <stdlib.h>
6
7static void
8abend (int sig)
9{
10 printf ("Abended on signal %d\n", sig);
11 exit (2);
12}
13
14int
15main (void)
16{
17 struct sigaction sa;
18
19 int i;
daywalkere201b402003-07-06 17:01:43 +000020 int rc;
njn25e49d8e72002-09-23 09:36:25 +000021 for (i = 1; i <= 65; i++) {
sewardjb5f6f512005-03-10 23:59:00 +000022 // skip signals 63 and 64: some systems say "warning, ignored attempt
nethercote6ed85092004-02-22 17:24:01 +000023 // to catch 32 because it's used internally by Valgrind", others say
24 // "invalid argument".
sewardjb5f6f512005-03-10 23:59:00 +000025 if (i == 63 || i == 64) {
nethercote6ed85092004-02-22 17:24:01 +000026 continue;
27 } // different systems
sewardj0ca2a6b2002-03-29 14:02:34 +000028 sa.sa_flags = 0;
29 sigemptyset( &sa.sa_mask );
30 sa.sa_handler = abend;
njn25e49d8e72002-09-23 09:36:25 +000031 fprintf(stderr,"setting signal %d: ", i);
daywalkere201b402003-07-06 17:01:43 +000032 rc = sigaction (i /*SIGKILL*/, &sa, NULL);
33 if (rc) perror ("");
34 else fprintf(stderr,"Success\n");
njn25e49d8e72002-09-23 09:36:25 +000035 fprintf(stderr,"getting signal %d: ", i);
daywalkere201b402003-07-06 17:01:43 +000036 rc = sigaction (i /*SIGKILL*/, NULL, &sa);
37 if (rc) perror ("");
38 else fprintf(stderr,"Success\n");
njn25e49d8e72002-09-23 09:36:25 +000039 fprintf(stderr,"\n");
sewardj0ca2a6b2002-03-29 14:02:34 +000040 }
41 return 0;
42}