本文に進む 日本−日本語
日本HPホーム 製品とサービス お客様サポート/ ダウンロード ソリューション ご購入の方法
≫ お問い合わせ
詳細検索オプション
日本HPホーム
HP-UX リファレンス: セクション 5 : その他の機能 > e

environ(5)

HP-UX 11i Version 2: September 2004
≫ 

テクニカル ドキュメント

PDF版
フィードバック
ここから本文が始まります

 ≫ 目次

 ≫ 索引

名称

environ ― ユーザー環境

説明

environment と呼ばれる文字列の配列が、プロセスの開始時に exec(2) によって使用可能になります。規約により、これらの文字列は name=value という形式になります。 以下の名称はさまざまなコマンドで使用されます (アルファベット順に説明してあります)。

HOME 

ユーザーのログインディレクトリの名前で、 login(1) によって、パスワードファイル に基づいて設定されます ( passwd(4) を参照)。

LANG 

LC_ALL, LC_COLLATE, LC_CTYPE, LC_MESSAGES, LC_MONETARY, LC_NUMERIC, LC_TIME の各環境変数がセットされていないかヌルの場合に、母国語、地域的な習慣、 およびコード化キャラクターセットに関するユーザーの要件を識別します。

LANG の形式は次のとおりです。

LANG=language[_territory][.codeset] 

LANG の有効な値はサポートされているロケールです ( lang(5) を参照)。 NLS (Native Language Support) は、 setlocale(3C) の呼び出しによって実行時に開始されます。 次に示す setlocale() の呼び出しは、プログラムの実行をユーザーの言語要件にバインドします。

setlocale(LC_ALL,""); 

この setlocale() の呼び出しは、 setlocale() に関連する環境変数からプログラムロケールを初期化します。 設定されていないまたは空文字列に設定されているカテゴリー固有の環境変数 があると、 LANG が必要なデフォルト値を用意します。

LANG 環境変数の最大長は SL_NAME_SIZE バイトです (ヘッダーファイル <locale.h> を参照)。

LANGOPTS 

次の形式で、モードおよびデータ順序の言語オプションを定義します。

LANGOPTS=[mode][_order] 

LANGOPTS の値は ASCII 形式として、 英語で指定します。 mode はファイルのモードを指定し、 l はラテンモード、 n は非ラテンモードを表します。 l でも n でもない値は非ラテンモードになります。 order はファイルのデータ順序を指定し、 k はキーボード順、 s はスクリーン順を表します。

LC_ALL 

すべてのロケールカテゴリーについて、値を決定します。 LC_ALL の値は、 LC_COLLATE, LC_CTYPE, LC_MESSAGES, LC_MONETARY, LC_NUMERIC, LC_TIME, LANG の他のどの環境変数よりも優先します。

LC_COLLATE, LC_CTYPE, LC_MESSAGES, LC_MONETARY, LC_NUMERIC, and LC_TIME
  

文字の照合順序、文字の分類と変換、出力メッセージ、通貨記号と金額の表現形式、 数値データの表現形式、時刻形式について、それぞれユーザーの言語、地域、 コードセットの要件を決定します。 環境で LC_ALL が定義されていない場合、これらのいずれかが定義されていないと LANG がデフォルトの値を用意します。

環境変数 LC_COLLATE, LC_CTYPE, LC_MESSAGES, LC_MONETARY, LC_NUMERIC, LC_TIME の構文を次に示します。

language[_territory][.codeset][@modifier] 

language フィールドは言語名の ISO 639 標準に適合し、 territory フィールドは ISO 3166 地域名に適合します。ロケール名のリスト については、 lang(5) を参照してください。

@modifier フィールドによって、 ユーザーは同じ言語の定義の中の複数の カテゴリー値から、1 つを選択することができます。 HP-UX には現在のところ、修飾子を用いたロケールはありません。

ロケールカテゴリーの値は優先順位によって決まります。次の中で 最初に一致した条件に従って、値が決まります。

1. 

LC_ALL 環境変数が定義されていてヌルでない場合には、 LC_ALL の値が使用されます。

2. 

LC_* 環境変数 (LC_COLLATE, LC_CTYPE, LC_MESSAGES, LC_MONETARY, LC_NUMERIC, LC_TIME) が定義されていてヌルでない場合には、その環境変数の値が、それに対応するカテゴリーの初期化に使用されます。

3. 

LANG 環境変数が定義されていてヌルでない場合には、 LANG 環境変数の値が使用されます。

4. 

LANG 環境変数が設定されていない、または空文字列に設定されている場合には、 POSIX/C のデフォルトのロケールが使用されます ( lang(5) を参照)。

LC_COLLATE 

文字照合順序のロケールカテゴリーを決定します。これはさまざまなユーティリティ および strcoll(3C)strxfrm(3C) での、等価クラスおよびマルチキャラクタ照合要素を含む正規表現やソートの 照合情報を決定するものです ( string(3C) を参照)。

LC_CTYPE 

文字分類 (アルファベット、数字、大文字など) について、 ロケールカテゴリーを決定します。 isalpha(3C) isdigit(3C) isupper(3C) ctype(3C) 内の文字変換を参照。 toupper(3C) tolower(3C) および conv(3C) 内のシングルバイトまたはマルチバイト文字としてのテキストの解釈を参照。

LC_MESSAGES 

肯定/否定応答の処理および診断メッセージや情報メッセージを書き出す際の言語 的/文化的きまりについて、ロケールカテゴリーを決定します。 これはオープンするメッセージカタログを決定する場合に、 catopen(3C) の動作にも影響を与えることがあります。

LC_MONETARY 

通貨に関連する数値形式情報のロケールカテゴリーを決定します。

LC_NUMERIC 

さまざまなユーティリティ、 printf(3S)scanf(3S) の書式付き I/O、 strtod(3C) の文字列変換機能について、数値形式情報 (桁区切り記号や小数点文字) の ロケールカテゴリーを決定します。

LC_TIME 

日付/時刻形式情報のロケールカテゴリーを決定します。 これは strftime(3C) での時間機能の動作に影響を与えます。

MANPATH 

man(1) でマニュアルのエントリーを検索するための、コロンで区切った ディレクトリ接頭辞のリスト。ログイン時に、 /etc/profile (または /etc/csh.login) が MANPATH=/usr/share/man:/usr/contrib/man:usr/local/man を設定します。 ファイル /etc/MANPATH があれば、このファイルからデフォルトの設定が読み取られます。

MANPATH は、 PATH 環境変数と同じ構文を使用するのに加えて、 NLSPATH 環境変数で用いる指定子 %L, %l, %t, %c も認識します。これらの指定子の説明については、次の NLSPATH を参照してください。 これにより、ロケール固有のマニュアルエントリーへのパスを指定する ことができます。

MANPATH に含まれる各接頭辞には、 man*, man*.Z, cat*, cat*.Z の形式のサブディレクトリが入っているものとみなされます ( man(1) catman(1M), fixman(1M) を参照)。

NLSPATH 

メッセージカタログを見つけようとする場合に catopen(3C) によって用いられる、一連の疑似パス名が入っています。 各疑似パス名には、オプションの パス接頭辞、 1 つ以上の置換フィールド記述子、 ファイル名、オプションのファイル名接尾辞で構成された名前テンプレートが 入っています。 例えば次の指定は、

NLSPATH="/system/nlslib/%N.cat" 

catopen(3C) がディレクトリ /system/nlslib 内のすべてのメッセージカタログを検索しなければならないことを定義します。 ここでカタログ名は、接尾辞 .cat 付きで catopen(3C) (%N) に渡される name パラメーターから構成する必要があります。

フィールド記述子は、 % とそれに続く 1 文字からなります。 フィールド記述子とそれが置換される値は以下のとおりです。

%N  

catopen(3C) に渡される name パラメーターの値

%L  

LC_MESSAGES の値

%l  

LC_MESSAGES の中の language 要素

%t  

LC_MESSAGES の中の territory 要素

%c  

LC_MESSAGES の中の codeset 要素

%%  

単一の % によって置き換えられる

例えば次のように指定してあると、

NLSPATH="/system/nlslib/%L/%N.cat" 

catopen(3C) は、 /system/nlslib/$LC_MESSAGES/name.cat をメッセージカタログとしてオープンしようと します。

指定された値が定義されていなかった場合は、空文字列に置き換えられます。 %t%c による置換には、区切り記号は含まれません。 %L に対してはデフォルト値がないことに注意してください。 LC_MESSAGES が設定されていず、 NLSPATH が前出の例のように設定されている場合には、 catopen(3C)/system/nlslib/name.cat をメッセージカタログとしてオープンしようとします。

NLSPATH に定義するパス名はコロン (:) で区切ります。 先頭のコロン、または連続した 2 つのコロン (::) は、 %N を指定するのと同じです。例えば、次のように設定すると

NLSPATH=":%N.cat:/nlslib/%L/%N.cat" 

oflag パラメーターが NL_CAT_LOCALE に設定された catopen(3C) は、ファイル ./name, ./name.cat, /nlslib/$LC_MESSAGES/name.cat をこの順序でオープンしようとします。 このうち、最初に正常にオープンできたものがメッセージカタログとなります。

ユーザー定義疑似パス名のいずれかでメッセージカタログをオープンできない場合には、 catopen(3C) は、システム定義のデフォルトの疑似パス名を NLSPATH につなげて用います。 このシステム全体で用いられるデフォルトのパスは次のとおりです。

/usr/lib/nls/msg/%L/%N.cat:/usr/lib/nls/%l/%t/%c/%N.cat 

catopen(3C) が、所有者が root である setuid または setgid を行うアプリケーションから呼び出された場合、環境変数 NLSPATH は使用されません。メッセージカタログを見つけるために、この変数の代わりにシステムファイル /etc/default/nlspath が使用されます。詳細は、 nlspath(4) を参照してください。

PAGER 

PAGER は特定のコマンドからの出力のパイプ処理に使用するページネータを示します。 その値は、必要なページネータの完全なコマンド行を指定する文字列でなければ なりません。2 つの例を示します。

PAGER="more -cs" 
PAGER="pg -c" 

PAGER は、 man(1) や対話型メーラーを含むいくつかのコマンドに影響します。 影響を受けるコマンドの一部には、矛盾があった場合にはページャを選択する 別の方法があります。 詳細についてはそれぞれのマンページを参照してください。

PATH 

PATH は、不完全なパス名だけがわかっているファイルを検索する場合に sh(1), time(1), nice(1), nohup(1) 、その他のコマンドが検索するディレクトリ接頭辞のリストです。 接頭辞の間はコロン (:) で区切られています。 login(1) のコマンドが PATH=:/bin:/usr/bin を設定します。

TERM 

TERM は、出力を準備するターミナルの種類を表します。 この情報は、 vi(1)mm(1) など、ターミナルの特殊機能を利用できるコマンドが用います。

TZ 

TZ には、時間帯の情報を設定します。 TZ は次の形式で設定することができます。

[:]STDoffset[DST[offset][,rule]] 

ここで

STDDST 

標準時間帯 (STD) とサマータイム時間帯 (DST) を指定する 3 バイト以上のデータ。 STD は必須です。 DST が指定されていない場合には、そのロケールにはサマータイムは適応されません。 数字、カンマ、 (,)、 マイナス (-)、 プラス (+)、 ASCII 形式の NULL を除くすべての文字が使えます。

offset  

offset は、その地域の時間に足すことによって世界標準時 (UTC) になる値です。 offset の形式は次のとおりです。

hh[:mm[:ss]] 

hh) は 0 から 23 までの値です。オプションの分 mm) と秒 ss) のフィールドは、0 から 59 までの値です。 時のフィールドは必須です。 offset の前に - があると、その時間帯は子午線の東側にあります。 offset の前に + があると、その時間帯は子午線の西側にあります。 何も付いていない場合には子午線の西側になります。

rule  

rule は、サマータイムから通常の時間に、また通常の時間からサマータイムに移行する、 日付と時刻を指定します。 rule の形式は次のとおりです。

date/time,date/time 

最初の date/time は通常の時間からサマータイムに移行する日時を示し、2 番目の date/time は通常の時間に戻る日時を示します。 time フィールド は、現在のローカル時間で表します。

date の形式は、次のいずれかでなければなりません。

Jn 

ユリウス暦で n 番目の日 (1 から 365 まで)。うるう日は数えません。2 月 29 日を指定することは できません。

n  

0 を基数とするユリウス暦での日 (0 から 365 まで)。うるう日を数えます。 2 月 29 日を指定することができます。

Mm.n.d 

d (0 から 6 まで) に週の何番目の日かを、 n (1 から 5 まで) に月のうちの何番目の週かを、 m (1 から 12 まで) に年の何番目の月かを指定します。 週 5 は、 m 番目の月の最後の日がある週を示します。 週 1 は、その月の 1 日がある週です。0 番目の日は、日曜です。

time  

timeoffset と同じ形式ですが、前に記号 ("-"または"+") を付けることはできません。 time を指定しない場合のデフォルトは、02:00:00 です。

STD フィールドと STD のオフセットフィールドは必ず指定しなければなりませんが、 DST フィールドを指定すると、 指定しない他のフィールドにはシステムがデフォルトの値を用意します。 このデフォルト値はファイル /usr/lib/tztab からとられ ( tztab(4) を参照)、 このファイルには サマータイム開始/終了のさまざまな歴史的日時が記述されています。

sh(1)export コマンドや name=value 引き数、または exec(2) によって、その他の名称を環境に入れることができます。 MAIL, PS1, PS2, IFS は、 .profile がしばしばエクスポートするシェル変数なので、 これらと重複する名称は使わないようにしてください。

プロセスの環境には、 C から次のグローバル変数を用いてアクセスすることができます。

  • #include <unistd.h>

    extern char **environ; 

この変数は、環境を構成する文字列 へのポインタの配列を指しています。 この配列の最後は、null ポインタ になっています。

注記

世界標準時 (UTC) は、 グリニッジ標準時間 (GMT) と同じです。

多言語化対応

多言語コードセットのサポート

環境変数 LANGLC_COLLATELC_CTYPELC_MESSAGESLC_MONETARYLC_NUMERICLC_TIME、 および NLSPATH は、多言語化対応アプリケーションをサポートします。標準のユーティリティは、上記の環境変数と、個々のユーティリティのマンページの「環境変数」サブセクションに記載されている環境変数を使用します。

これらの変数が指定するロケールカテゴリの基礎となるコードセットが異なっている場合、結果は不定であり、 regcompglobfnmatch などの正規表現の API の動作が影響を受けることがあります。

警告

HP-UX のコマンドやライブラリルーチン の一部は、環境変数 LANG, LC_COLLATE, LC_CTYPE, LC_MONETARY, LC_NUMERIC, LC_TIME, LANGOPTS を参照しません。 またメッセージカタログを使用しないコマンドもあり、それらの動作は NLSPATH の影響を受けません。 実装の詳細に関しては、それぞれのコマンド、ライブラリルーチンの 『「多言語化対応」』 の項を参照してください。

著者

environ は、 AT&T と HP で開発されました。

参照

env(1)、 login(1)、 sh(1)、 exec(2)、 catopen(3C)、 ctime(3C)、 getenv(3C)、 setlocale(3C)、 nlspath(4)、 profile(4)、 lang(5)、 term(5)、 tztab(4)

標準準拠

environ: AES, SVID3, XPG2, XPG3, XPG4, FIPS 151-2, POSIX.1

印刷用画面へ
プライバシー 本サイト利用時の合意事項
© 1983-2004 Hewlett-Packard Development Company, L.P.