次: , 前: Invoking sdiff, 上: Top


17 標準への準拠

状況によっては,gnuのユーティリティの動作はposixの標準と互換性 がありません.これらの非互換性を抑制するため,POSIXLY_CORRECT環境 変数を定義してください.posix準拠を調査していない限り, POSIXLY_CORRECTを定義する必要はありません.

通常,オプションとオペランドは,任意の順序にすることが可能で,プログラム はすべてのオプションがオペランドの前にあるかのように動作します.例えば, `2'は-Cのオプションの引数なので,`diff lao tzu -C 2' は`diff -C 2 lao tzu'のように動作します.しかし, POSIXLY_CORRECT環境変数が設定されている場合,それ以外のオプション が特定のコマンドに対して指定されていない限り,オプションはオペランドの前 にある必要があります.

新しいバージョンのposixは,古いバージョンのものと互換性が無いものも あります.例えば,古いバージョンのposixでは`diff -C 10'と同じ 意味を持つコマンド`diff -c -10'が利用可能ですが,posix 1003.1-2001の`diff'では,-10のような数字列のオプションを許 可していません.

gnuのユーティリティは通常,システム標準のposixのバージョンに準 拠しています.異なるposixのバージョンに準拠させるため, _POSIX2_VERSION環境変数を適用させる標準の年月を指定する yyyymmの形式の値に設定してください.現在,_POSIX2_VERSIONに 対して二つの値がサポートされています.`199209'はposix 1003.2-1992を意味し,`200112'はposix 1003.1-2001を意味します. 例えば,古いバージョンのposixを仮定する古いソフトウェアを実行し, `diff -c -10'を使用している場合,環境変数で `_POSIX2_VERSION=199209'を設定することで,互換性の問題を回避するこ とが可能です.