COBOL ランタイム・ライブラリーでは、次の環境変数を使用します。 大/小文字にはこだわりません。
SET OUTPUTFILE=d:\january\results.car
すべての assignment-name を設定する必要があります。
環境変数として設定されていないユーザー定義語に対して割り当てを行う場合は、ユーザー定義語のリテラル名を持つファイル (下記の例では OUTPUTFILE) に対して割り当てが行われます。割り当てが有効であれば、このファイルが現行ディレクトリーに書き込まれます。
assignment-name を設定したら、この環境変数を COBOL ユーザー定義語として ASSIGN 文節で使用することができます。
前の SET ステートメントに基づいて、COBOL ソース・プログラムには次の SELECT および ASSIGN 文節が含まれます。
SELECT CARPOOL ASSIGN TO OUTPUTFILE
OUTPUTFILE は環境変数で定義されているため、上記のステートメントにより、ファイル d:¥january¥results.car へデータが書き込まれます。
ASSIGN を使用して、標準言語ファイル・システム (STL)、レコード順次区切りファイル・システム (RSD)、Btrieve ファイル・システムなどの代替ファイル・システムに格納されるファイルを指定することができます。
ランタイム・エラー・メッセージをファイルに取り込むには、SET コマンドを使用して COBMSGS をファイル名に設定します。アプリケーションを強制終了させるランタイム・エラーがプログラム内で発生した場合は、COBMSGS の値として設定されたファイルに、強制終了の理由を示すエラー・メッセージが入ります。
COBMSGS が設定されていない場合は、エラー・メッセージが端末に出力されます。
動的ロードが必要なプログラムを実行するには、この変数を設定する必要があります。以下に、その例を示します。
SET COBPATH=C:\pgmpath\pgmdll
ランタイム・オプションが複数ある場合は、コンマまたはコロンで区切ります。サブオプションの区切り文字には、括弧または等号 (=) を使用します。オプションは大/小文字の区別をしません。例えば、次の 2 つのコマンドは同じです。
SET COBRTOPT=TRAP=ON,errcount SET COBRTOPT=trap(on):ERRCOUNT
各ランタイム・オプションにはデフォルトが適用されます。詳細については、 ランタイム・オプションに関する下記の関連参照をご覧ください。
EBCDIC コード・ページを設定するには、次のコマンドを発行します。この場合、codepage には使用するコード・ページの名前が入ります。
SET EBCDIC_CODEPAGE=codepage
EBCDIC_CODEPAGE が設定されていない場合は、 サポートされるロケールとコード・ページに関する下記の関連参照に示されているように、 現在のロケールに基づいてデフォルトの EBCDIC コード・ページが選択されます。 CHAR(EBCDIC) コンパイラー・オプションが有効で、 有効なロケールに対して複数の EBCDIC コード・ページを適用できる場合は、 ロケールのデフォルト EBCDIC コード・ページが受け入れ可能でなければ、 EBCDIC_CODEPAGE 環境変数を設定する必要があります。
例えば、次のコマンドは言語ロケール名を米国英語に設定します。
SET LANG=en_US
LOCPATH は、英数字データ項目のロケール・ベースの比較など、ロケールを参照するすべての操作に使用されます。
NLSPATH を設定する際には、値を置き換えるのではなく NLSPATH に値を追加してください。この環境変数は、他のプログラムが使用する可能性があります。以下に、その例を示します。
SET NLSPATH=C:\cobolpath\MESSAGES\%L\%N;%NLSPATH%
%L および %N は大文字でなければなりません。%L には、LANG 環境変数で指定された値が代入されます。 %N には、COBOL で使用されるメッセージ・カタログ名が代入されます。
この製品には、次の言語によるメッセージが組み込まれています。
メッセージの言語とロケール設定の言語は別に指定することができます。例えば、環境変数 LANG を en_US に設定し、環境変数 LC_ALL をja_JP.IBM-943 に設定することが可能です。この例では、COBOL コンパイラー・メッセージまたはランタイム・メッセージはすべて英語で処理され、プログラム内のネイティブ ASCII (DISPLAY または DISPLAY-1) データはコード・ページ IBM-943 (ASCII 日本語コード・ページ) のエンコードとして処理されます。
コンパイラーは、NLSPATH および LANG 環境変数の値の組み合わせを使用して、 メッセージ・カタログにアクセスします。NLSPATH が正しく設定されているが、LANG が上記のロケール値のいずれかに設定されていない場合は、警告メッセージが 生成され、コンパイラーは en_US メッセージ・カタログをデフォルトに設定します。 NLSPATH 値が無効の場合、終了エラー・メッセージが生成されます。
ランタイム・ライブラリーも NLSPATH を使用してメッセージ・カタログにアクセスします。NLSPATH を正しく設定しないと、ランタイム・メッセージが短縮形で戻されます。
環境変数を設定しない場合、デフォルトでは、SYSIN および SYSIPT が論理入力装置 (キーボード) に割り当てられます。 SYSOUT、SYSLIST、 SYSLST、CONSOLE は、システムの論理出力装置 (画面) に割り当てられます。SYSPUNCH および SYSPCH には、デフォルトでは値が割り当てられません。これらは明示的に定義しない限り無効です。
例えば、次のコマンドは CONSOLE を定義します。
SET CONSOLE=c:\mypath\terminal.txt
CONSOLE は、次のソース・コードとともに使用される場合があります。
SPECIAL-NAMES.
CONSOLE IS terminal
. . .
DISPLAY 'Hello World' UPON terminal
以下に、その例を示します。
SET TMP=c:\shared\temp
SET TZ=SSS[+|-]nDDD[,sm,sw,sd,st,em,ew,ed,et,shift]
デフォルトは、現行のロケールによって異なります。
TZ がない場合は、デフォルトのロケール値として EST5EDT が使用されます。標準時間帯しか指定しない場合は、n (GMT からの時間差) のデフォルト値が 5 ではなく 0 になります。
sm、sw、sd、st、em、ew、ed、et、shift のうち 1 つでも値を指定する場合は、これらすべての値を指定する必要があります。これらの値のうち 1 つでも無効な場合は、ステートメント全体が無効と見なされ、時間帯情報は変更されません。
以下に、その例を示します。
SET TZ=CST6CDT
上記のステートメントは、標準時間帯を CST、夏時間調整を CDT、CST と UTC の時間差を 6 時間に設定します。夏時間調整の開始値と終了値は設定されません。
これ以外に考えられる値としては、Pacific United States を表す PST8PDT や、Mountain United States を表す MST7MDT があります。
関連タスク
環境変数を使用したロケールの指定
ファイルの識別