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