[an error occurred while processing this directive]

HP OpenVMS Systems

Ask the Wizard
» 

HP OpenVMS Systems

OpenVMS information

» What's new on our site
» Upcoming events
» Configuration and buying assistance
» Send us your comments

HP OpenVMS systems

» OpenVMS software
» Supported Servers
» OpenVMS virtualization
» OpenVMS solutions and partners
» OpenVMS success stories
» OpenVMS service and support
» OpenVMS resources and information
» OpenVMS documentation
» Education and training

Quick Links

» Non-javascript page
» Ask the Wizard
» OpenVMS FAQ

Test Drive OpenVMS

» OpenVMS I64 test drive
» Java test drive

Other information resources available to you include:

» OpenVMS freeware
» ECO kits, software and hardware support, prior version support
» Alpha SRM, ARC, and AlphaBIOS firmware updates
» ENCOMPASS - HP user group
» OpenVMS software downloads, OpenVMS freeware CD-ROM
» OpenVMS firmware locations
» DECconnect passive adaptor charts
» Cables reference guide
» MicroVAX console commands
» OpenVMS student research

Select a topic below to see Questions Frequently Asked by partners

» Using the online documentation library(installing BNU from the asap SDK)
» Global sections(how to create and use.)
» xx$CREATE_BUFOBJ system service(usage)
» Ethernet address(methods of determination)
» Shareable images(cookbook approach to creating one)
» Sharing data/code at absolute addresses(a guide with examples)
» Determining the Alpha microprocessor
» Using GETSYI to get hardware status

Evolving business value

» Business Systems Evolution
» AlphaServer systems transition planning
» Alpha RetainTrust program

Related links

» HP Integrity servers
» HP Alpha systems
» HP storage
» HP software
» HP products and services
» HP solutions
» HP support
disaster proof
HP Integrity server animation
HP Integrity server animation
Content starts here

Ask the Wizard Questions

Questions about DEC C exception handling

The Question is:

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.


The Answer is:

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;
}