Copyright Digital Equipment Corp. All rights reserved.

Description

   The following example shows a Pascal program that calls the
   C RTL using the VAXC$CRTL_INIT function:

   On OpenVMS Alpha systems:

   $ PASCAL EXAMPLE
   $ LINK EXAMPLE,SYS$LIBRARY:VAXCRTL/LIB
   $ TY EXAMPLE.PAS
   PROGRAM TESTC(input, output);
   PROCEDURE VAXC$CRTL_INIT; extern;
   BEGIN
      VAXC$CRTL_INIT;
   END
   $

   A shareable image need only call this function if it contains
   an VSI C function for signal handling, environment variables,
   I/O, exit handling, a default file protection mask, or if it is a
   child process that should inherit context.

   Although many of the initialization activities are performed
   only once, DECC$CRTL_INIT can safely be called multiple times. On
   OpenVMS VAX systems, DECC$CRTL_INIT establishes the C RTL
   internal OpenVMS exception handler in the frame of the routine
   that calls DECC$CRTL_INIT each time DECC$CRTL_INIT is called.

   At least one frame in the current call stack must have that
   handler established for OpenVMS exceptions to get mapped to UNIX
   signals.