日本-日本語 |
|
|
|
OpenVMS マニュアル |
|
HP OpenVMS
|
目次 | 索引 |
getenv |
現在のプロセスの環境配列を検索し,指定された環境名に関連付けられている値を返します。
#include <stdlib.h>char *getenv (const char *name);
name
次の値のいずれか。
- HOME --- ユーザのログイン・ディレクトリ
- TERM --- 使用している端末の種類
- PATH --- デフォルトのデバイスとディレクトリ
- USER --- プロセスを開始したユーザの名前
- 論理名またはコマンド言語インタプリタ (CLI) シンボル名
- setenvまたは putenvで設定された環境変数
指定する name の大文字と小文字の区別は重要です。
特定の状況では, getenv関数はユーザ指定引数に対して論理名変換を実行しようとします。
- getenvに対する引数が環境配列内の環境文字列のいずれとも一致しない場合は, getenvはファイル処理の場合と同様に, LNM$FILE_DEV 論理名によって示される論理名テーブルを検索することにより,引数を論理名として変換しようとします。
getenvはまず,大文字と小文字を区別した検索を実行します。その検索が失敗すると,大文字と小文字を区別しない検索を実行します。ほとんどの場合,論理名は大文字で定義されていますが, getenvは小文字を含む論理名も検索することができます。
getenvは繰り返しの論理名変換を実行しません。- 論理名が複数の等価名を含む検索リストの場合,返される値は最初の等価名を指します。次の例を参照してください。
$ DEFINE A B,C ptr = getenv("A");
Aは " B" を指すポインタを返します。- 論理名が存在しない場合, getenvは引数文字列を CLI シンボルとして変換しようとします。この処理が正しく行われると,変換されたシンボル・テキストが返されます。この処理に失敗すると,戻り値は NULL になります。
getenvは繰り返しの CLI 変換を実行しません。
CLI が DEC/Shell の場合は, Shell 環境シンボルは DCL シンボルとして実相されているため,関数は論理名変換を実行しません。
注意
OpenVMS Version 7.1 では, OpenVMS 環境変数 ( つまり論理名と DCL シンボル ) のキャッシュが getenv関数に追加され,論理名の変換や, DCL シンボルの値の取得のためにライブラリが呼び出しを繰り返すのを回避するようになりました。デフォルト設定では,キャッシュは無効に設定されています。アプリケーションで,実行中に発生する可能性のある OpenVMS 環境変数の変化を追跡する必要がない場合は,アプリケーションを起動する前に DECC$ENABLE_GETENV_CACHE 論理名 (等価文字列) を設定することにより,キャッシュを有効にすることができます。
x 変換後のシンボルを格納した配列を指すポインタ。インデックス 0 に等価名が返されます。 NULL 変換が失敗したことを示します。
目次 | 索引 |
|