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.