Go to the first, previous, next, last section, table of contents.


Standards conformance

In a few cases, the GNU utilities' default behavior is incompatible with the POSIX standard. To suppress these incompatibilities, define the @env{POSIXLY_CORRECT} environment variable. Unless you are checking for POSIX conformance, you probably do not need to define @env{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 @option{-C}. However, if the @env{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 @option{-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 @env{_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 @env{_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.


Go to the first, previous, next, last section, table of contents.