Copyright Digital Equipment Corp. All rights reserved.

Feature_Logical_Names

   The C RTL provides an extensive list of feature switches that
   can be set using DECC$ logical names. These switches affect the
   behavior of a C application at run time.

   The feature switches introduce new behaviors and also preserve
   old behaviors that have been deprecated.

   You enable most features by setting a logical name to ENABLE and
   disable a feature by setting the logical name to DISABLE:

   $ DEFINE DECC$feature ENABLE

   $ DEFINE DECC$feature DISABLE

   Some feature logical names can be set to a numeric value. For
   example:

   $ DEFINE DECC$PIPE_BUFFER_SIZE 32768

                                 NOTES

      o  Do not set C RTL feature logical names for the system.
         Set them only for the applications that need them,
         because other applications including OpenVMS components
         depend on the default behavior of these logical names.

      o  Older feature logicals from earlier releases of the
         C Run-Time Library were documented as supplying "any
         equivalence string" to enable a feature. While this was
         true at one time, we now strongly recommend that you use
         ENABLE for setting these feature logicals and DISABLE for
         disabling them. Failure to do so may produce unexpected
         results.

         The reason for this is twofold:

         -  In previous versions of the C RTL, any equivalence
            string, even DISABLE, may have enabled a feature
            logical.

         -  In subsequent and current versions of the C RTL, the
            following equivalence strings will disable a feature
            logical. Do not use them to enable a feature logical.

               DISABLE
               0 (zero)
               F
               FALSE
               N
               NO

            Any other string not on this list will enable a
            feature logical. The unintentionally misspelled string
            "DSABLE", for example, will enable a feature logical.

   The C RTL also provides several functions to manage feature
   logicals within your applications:

   decc$feature_get
   decc$feature_get_value
   decc$feature_get_index
   decc$feature_get_name
   decc$feature_set
   decc$feature_set_value
   decc$feature_show
   decc$feature_show_all

   See the reference section for more information on these
   functions.

   The C RTL feature logical names are listed below, grouped by the
   type of features they control:

      Feature Logical Name               Default
      ------- ------- ----               -------

      Performance Optimizations:

         DECC$ENABLE_GETENV_CACHE        DISABLE
         DECC$LOCALE_CACHE_SIZE          0
         DECC$TZ_CACHE_SIZE              2

      Legacy Behaviors:

         DECC$ALLOW_UNPRIVILEGED_NICE    DISABLE
         DECC$NO_ROOTED_SEARCH_LISTS     DISABLE
         DECC$PRINTF_USES_VAX_ROUND      DISABLE
         DECC$THREAD_DATA_AST_SAFE       DISABLE
         DECC$V62_RECORD_GENERATION      DISABLE
         DECC$WRITE_SHORT_RECORDS        DISABLE
         DECC$XPG4_STRPTIME              DISABLE

      File Attributes:

         DECC$DEFAULT_LRL                32767
         DECC$DEFAULT_UDF_RECORD         DISABLE
         DECC$FIXED_LENGTH_SEEK_TO_EOF   DISABLE
         DECC$ACL_ACCESS_CHECK           DISABLE

      Mailboxes:

         DECC$MAILBOX_CTX_STM            DISABLE

      Changes for UNIX Conformance:

         DECC$SELECT_IGNORES_INVALID_FD  DISABLE
         DECC$STRTOL_ERANGE              DISABLE
         DECC$VALIDATE_SIGNAL_IN_KILL    DISABLE

      General UNIX Enhancements:

         DECC$UNIX_LEVEL                 DISABLE
         DECC$ARGV_PARSE_STYLE           DISABLE
         DECC$PIPE_BUFFER_SIZE           512
         DECC$PIPE_BUFFER_QUOTA          512
         DECC$STREAM_PIPE                DISABLE
         DECC$POPEN_NO_CRLF_REC_ATTR     DISABLE
         DECC$STDIO_CTX_EOL              DISABLE
         DECC$USE_RAB64                  DISABLE
         DECC$GLOB_UNIX_STYLE            DISABLE

      Enhancements for UNIX Style Filenames:

         DECC$DISABLE_TO_VMS_LOGNAME_TRANSLATION  DISABLE
         DECC$EFS_CHARSET                  DISABLE
         DECC$ENABLE_TO_VMS_LOGNAME_CACHE  ENABLE
         DECC$FILENAME_ENCODING_UTF8       DISABLE
         DECC$FILENAME_UNIX_NO_VERSION     DISABLE
         DECC$FILENAME_UNIX_REPORT         DISABLE
         DECC$READDIR_DROPDOTNOTYPE        DISABLE
         DECC$RENAME_NO_INHERIT            DISABLE
         DECC$RENAME_ALLOW_DIR             DISABLE

      Enhancements for UNIX Style File Attributes:

         DECC$EFS_FILE_TIMESTAMPS        DISABLE
         DECC$EXEC_FILEATTR_INHERITANCE  DISABLE
         DECC$FILE_OWNER_UNIX            DISABLE
         DECC$FILE_PERMISSION_UNIX       DISABLE
         DECC$FILE_SHARING               DISABLE

      UNIX Compliance Mode:

         DECC$DETACHED_CHILD_PROCESS     DISABLE
         DECC$FILENAME_UNIX_ONLY         DISABLE
         DECC$POSIX_STYLE_UID            DISABLE
         DECC$USE_JPI$_CREATOR           DISABLE

      New Behaviors for POSIX Conformance:

         DECC$ALLOW_REMOVE_OPEN_FILES    DISABLE
         DECC$POSIX_SEEK_STREAM_FILE     DISABLE
         DECC$UMASK                      RMS default

      Filename Handling:

         DECC$POSIX_COMPLIANT_PATHNAMES  DISABLE

         DECC$DISABLE_POSIX_ROOT         ENABLE
         DECC$EFS_CASE_PRESERVE          DISABLE
         DECC$EFS_CASE_SPECIAL           DISABLE
         DECC$EFS_NO_DOTS_IN_DIRNAME     DISABLE
         DECC$READDIR_KEEPDOTDIR         DISABLE
         DECC$UNIX_PATH_BEFORE_LOGNAME   DISABLE
 


Additional information available:

DECC$ACL_ACCESS_CHECK           DECC$ALLOW_REMOVE_OPEN_FILES
DECC$ALLOW_UNPRIVILEGED_NICE    DECC$ARGV_PARSE_STYLE
DECC$DEFAULT_LRL                DECC$DEFAULT_UDF_RECORD
DECC$DETACHED_CHILD_PROCESS     DECC$DISABLE_POSIX_ROOT
DECC$DISABLE_TO_VMS_LOGNAME_TRANSLATION         DECC$EFS_CASE_PRESERVE
DECC$EFS_CASE_SPECIAL           DECC$EFS_CHARSET
DECC$EFS_FILE_TIMESTAMPS        DECC$EFS_NO_DOTS_IN_DIRNAME
DECC$ENABLE_GETENV_CACHE        DECC$ENABLE_TO_VMS_LOGNAME_CACHE
DECC$EXEC_FILEATTR_INHERITANCE  DECC$FILENAME_ENCODING_UTF8
DECC$FILENAME_UNIX_ONLY         DECC$FILENAME_UNIX_NO_VERSION
DECC$FILENAME_UNIX_REPORT       DECC$FILE_PERMISSION_UNIX
DECC$FILE_SHARING               DECC$FIXED_LENGTH_SEEK_TO_EOF
DECC$GLOB_UNIX_STYLE            DECC$LOCALE_CACHE_SIZE
DECC$MAILBOX_CTX_STM            DECC$NO_ROOTED_SEARCH_LISTS
DECC$PIPE_BUFFER_QUOTA          DECC$PIPE_BUFFER_SIZE
DECC$POPEN_NO_CRLF_REC_ATTR     DECC$POSIX_COMPLIANT_PATHNAMES
DECC$POSIX_SEEK_STREAM_FILE     DECC$POSIX_STYLE_UID
DECC$PRINTF_USES_VAX_ROUND      DECC$READDIR_DROPDOTNOTYPE
DECC$READDIR_KEEPDOTDIR         DECC$RENAME_NO_INHERIT
DECC$RENAME_ALLOW_DIR           DECC$SELECT_IGNORES_INVALID_FD
DECC$STDIO_CTX_EOL              DECC$STREAM_PIPE
DECC$STRTOL_ERANGE              DECC$THREAD_DATA_AST_SAFE
DECC$TZ_CACHE_SIZE              DECC$UMASK      DECC$UNIX_LEVEL
DECC$UNIX_PATH_BEFORE_LOGNAME   DECC$USE_JPI$_CREATOR           DECC$USE_RAB64
DECC$VALIDATE_SIGNAL_IN_KILL    DECC$V62_RECORD_GENERATION
DECC$WRITE_SHORT_RECORDS        DECC$XPG4_STRPTIME