1 #include <stdio.h>
2 #include <signal.h>
3 #include <stdlib.h>
4
usage()5 void usage() {
6 printf("Usage: ./test_divide <number1> <number2>\nPrints out number1 divided by number2\n");
7 }
8
divide(int a,int b)9 int divide(int a, int b) {
10 return a/b;
11 }
12
divByZeroError(int a)13 void divByZeroError(int a) {
14 printf("Error!\n");
15 exit(1);
16 }
17
main(int argc,char ** argv)18 int main(int argc, char ** argv) {
19 struct sigaction divAction;
20 sigemptyset(&divAction.sa_mask);
21 divAction.sa_handler = divByZeroError;
22 sigaction(SIGFPE, &divAction, NULL);
23 sigaction(SIGTRAP, &divAction, NULL);
24 printf("3/4 = %d\n9/2 = %d\n4/2 = %d\n10/0 = ", divide(3,4), divide(9,2), divide(4,2));
25 printf("%d\n", divide(10, 0));
26 return 0;
27 }
28