[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

2.13 規格への準拠

GNU ユーティリティのデフォルトの動作が POSIX の規格と一致しない場合が、若干ながら存在する。 そうした非互換性を抑制するには、環境変数 POSIXLY_CORRECT を設定すればよい。 もっとも、POSIX に準拠しているか否かを点検しているのでもないかぎり、 POSIXLY_CORRECT を設定する必要は、おそらくないだろうが。

POSIX の新しいバージョンが、古いバージョンと非互換であることが、 ときどきある。たとえば、POSIX の古いバージョンでは、‘sort +1’ というコマンドは、 各入力行の二番目以後のフィールドに基づいて、行の並べ替えを行うことになっていた。 ところが、POSIX 1003.1-2001 では、同じコマンドが ‘+1’ という名前のファイルの行を並べ替えることになっており、 フィールドに基づいた並べ替えを行うには、‘sort -k 2’ という別のコマンドを使わなければならないのだ。 そして、さらにややこしいことに、POSIX 1003.1-2008 では、古い動作と新しい動作のどちらをする実装も認められている。

通常 GNU のユーティリティは、お使いのシステムが規格として採用している POSIX のバージョンに従っている。GNU ユーティリティを POSIX の別のバージョンに準拠させるには、環境変数 _POSIX2_VERSION を設定すればよい。この環境変数の値は、yyyymm という形式であり、 その規格が何年の何月に採択されたかを示している。_POSIX2_VERSION の値としては、現在のところ、次の三つがサポートされている。すなわち、‘199209’, ‘200112’, ‘200809’ であり、それぞれ POSIX 1003.2-1992, POSIX 1003.1-2001, POSIX 1003.1-2008 を表している。 一例を挙げよう。御使用のシステムが POSIX 1003.1-2001 に準拠しているのに、動かしているソフトウェアが ‘sort +1’ や ‘tail +10’ といった旧来の用法も持っている場合には、環境に ‘_POSIX2_VERSION=200809’ を設定することで、互換性の問題を回避することができる。


This document was generated on June 7, 2022 using texi2html 1.82.