VMS Help  —  CRTL  Feature-Test Macros, Curses and Socket Compatibility Macros
    The following feature-test macros are used to control the Curses
    and Socket subsets of the C RTL library:

    o  _BSD44_CURSES

       This macro selects the Curses package from the 4.4BSD Berkeley
       Software Distribution.

    o  _VMS_CURSES

       This macro selects a Curses package based on the VAX C
       compiler. This is the default Curses package.

    o  _SOCKADDR_LEN

       This macro is used to select 4.4BSD-compatible and XPG4 V2-
       compatible socket interfaces. These interfaces require support
       in your underlying TCP/IP software. Contact your TCP/IP vendor
       to inquire if the version of TCP/IP software you run supports
       4.4BSD sockets.

    Strict XPG4 V2 compliance requires the 4.4BSD-compatible socket
    interface. Therefore, if _XOPEN_SOURCE_EXTENDED is defined on
    OpenVMS Version 7.0 or higher, _SOCKADDR_LEN is defined to be 1.

    The following examples help clarify the use of these macros:

    o  Symbolic constants like AE, AL, AS, AM, BC, which represent
       pointers to termcap fields used by the BSD Curses package, are
       only visible in <curses.h> if _BSD44_CURSES is defined.

    o  The <socket.h> header file defines a 4.4BSD sockaddr structure
       only if _SOCKADDR_LEN or _XOPEN_SOURCE_EXTENDED is defined.
       Otherwise, <socket.h> defines a pre-4.4BSD sockaddr structure.
       If _SOCKADDR_LEN is defined and _XOPEN_SOURCE_EXTENDED is not
       defined,

       The <socket.h> header file also defines an osockaddr
       structure, which is a 4.3BSD sockaddr structure to be used
       for compatibility purposes. Since XPG4 V2 does not define
       an osockaddr structure, it is not visible in _XOPEN_SOURCE_
       EXTENDED mode.
Close Help