Node:Standards conformance, Next:Projects, Previous:Invoking sdiff, Up:Top
In a few cases, the GNU utilities' default behavior is
incompatible with the POSIX standard. To suppress these
incompatibilities, define the POSIXLY_CORRECT
environment
variable. Unless you are checking for POSIX conformance, you
probably do not need to define POSIXLY_CORRECT
.
Normally options and operands can appear in any order, and programs act
as if all the options appear before any operands. For example,
diff lao tzu -C 2
acts like diff -C 2 lao tzu
, since
2
is an option-argument of -C
. However, if the
POSIXLY_CORRECT
environment variable is set, options must appear
before operands, unless otherwise specified for a particular command.
Newer versions of POSIX are occasionally incompatible with older
versions. For example, older versions of POSIX allowed the
command diff -c -10
to have the same meaning as diff -C
10
, but POSIX 1003.1-2001 diff
no longer allows
digit-string options like -10
.
The GNU utilities normally conform to the version of POSIX
that is standard for your system. To cause them to conform to a
different version of POSIX, define the _POSIX2_VERSION
environment variable to a value of the form yyyymm specifying
the year and month the standard was adopted. Two values are currently
supported for _POSIX2_VERSION
: 199209
stands for
POSIX 1003.2-1992, and 200112
stands for POSIX
1003.1-2001. For example, if you are running older software that
assumes an older version of POSIX and uses diff -c -10
,
you can work around the compatibility problems by setting
_POSIX2_VERSION=199209
in your environment.