VMS Help  —  CRTL  Feature Logical Names, DECC$DISABLE_POSIX_ROOT
    With DECC$DISABLE_POSIX_ROOT enabled, support for the POSIX root
    directory defined by SYS$POSIX_ROOT is disabled.

    With DECC$DISABLE_POSIX_ROOT disabled, the SYS$POSIX_ROOT logical
    name is interpreted as the equivalent of the file path "/". If
    a UNIX path starting with a slash (/)  is given and the value
    after the leading slash cannot be translated as a logical name,
    SYS$POSIX_ROOT is used as the parent directory for the specified
    UNIX file path.

    The C RTL supports a UNIX style root that behaves like a real
    directory. This allows such actions as:

    % cd /
    % mkdir /dirname
    % tar -xvf tarfile.tar /dirname
    % ls /

    Previously, the C RTL did not recognize "/" as a directory name.
    The normal processing for a file path starting with "/" was to
    interpret the first element as a logical name or device name. If
    this failed, there was special processing for the name /dev/null
    and names starting with /bin and /tmp:

    /dev/null       NLA0:
    /bin            SYS$SYSTEM:
    /tmp            SYS$SCRATCH:

    These behaviors are retained for compatibility purposes. In
    addition, support has been added to the C RTL for the logical
    name SYS$POSIX_ROOT as an equivalent to "/".

    To enable this feature for use by the C RTL, define SYS$POSIX_
    ROOT as a concealed logical name. For example:

    $ DEFINE/TRANSLATION=(CONCEALED,TERMINAL) SYS$POSIX_ROOT -
                                        "$1$DKA0:[SYS0.abc.]"

    To disable this feature:

    $ DEFINE DECC$DISABLE_POSIX_ROOT DISABLE

    Enabling SYS$POSIX_ROOT results in the following behavior:

    o  If the existing translation of a UNIX path starting with "/"
       fails and SYS$POSIX_ROOT is defined, the name is interpreted
       as if it starts with /sys$posix_root.

    o  When converting from an OpenVMS to a UNIX style filename,
       and the OpenVMS name starts with "SYS$POSIX_ROOT:", then
       the "SYS$POSIX_ROOT:" is removed. For example, SYS$POSIX_
       ROOT:[dirname] becomes /dirname. If the resulting name
       could be interpreted as a logical name or one of the special
       cases previously listed, the result is /./dirname instead of
       /dirname.
Close Help