My question is actually about programming in VAX C.
Where can I find more information on error-handling
functions such as "signal", "VAXC$ESTABLISH", etc.
other than the rather sketchy material found in the
VAX C manual and VAXC RTL manuals? I have both the
printed manuals and the on-line CD ROM, but I would
appreciate some better examples of how to handle
run-time errors, especially floating point exceptions.
I'm working on a DEC Alpha machine.
We are sorry that you find the documentation of signal handling
"sketchy". Perhaps you did not check chapter 4 of the DEC C
Run-Time Library Reference Manual. The most recent version
of the manual, released with V5.2 of DEC C, contains 15 pages
discussing signal handling.
By reading that section we were able to quickly construct a
program that traps floating point divide by zero. That program
is enclosed below.
We are always concerned about the quality of our documentation.
If chapter 4 is not meeting your needs, perhaps you would provide
us with a better explanation about what is missing. We would
be happy to work with you to improve our manuals.
We thank you for your interest in DEC C. Please continue to keep
us informed of any other problems or suggestions you may have.
DEC C Engineering
#include
#include
double a = 1;
double b = 0;
double c;
void catch_fp(int x);
main()
{
signal(SIGFPE, catch_fp);
printf("program starting\n");
c = a / b;
printf("after division\n");
}
void catch_fp(int x)
{
printf("division error caught\n");
return;
}