POSIX 1003.1 および X/Open CAE 仕様 4.2 (XPG4.2)
は、C システム・ヘッダー・ファイルが一定の外部変数を定義することを
必要とします。追加変数は、POSIX または XPG4.2 関数で使用するために定義されます。POSIX または XPG4 フィーチャー・テスト・マクロの 1 つを
定義し、これらのヘッダーの 1 つをインクルードする場合、外部変数がプログラムで定義されます。これらの外部変数の取り扱いは、マルチスレッド環境における他のグローバル変数 (その値がスレッド特定)、およびフェッチされたモジュールへの呼び出しを
越えて使用される他のグローバル変数 (その値が伝搬される) と比較すると異なっています。
グローバル変数値にアクセスするには、C/C++ のコンパイルおよび
z/OS® のバインド中に、次のものを指定する必要があります。
- 非 XPLINK (非スレッド・セーフ)
- C コードは、RENT または DLL オプションを指定して
コンパイルする必要があります (C++ コードは追加のオプションを必要としません)。バインド中に、SCEEOBJ 自動呼び出しライブラリーを指定する必要があります。
- 非 XPLINK (スレッド・セーフ)
- C または C++ のいずれの場合にも、追加のオプションは必要ありません。_SHARE_EXT_VARS フィーチャー・テスト・マクロ、または必要な _SHR_ 接頭部付きフィーチャー・テスト・マクロを 使用する必要があります。
等価的に、必要なスレッド特定の関数を直接呼び出すことができます (次の各外部変数の説明を参照)。
- XPLINK (非スレッド・セーフ)
- C または C++ のいずれの場合にも、追加のオプション (XPLINK 以外に) は必要ありません。C ランタイム・ライブラリー・サイド・デック (SCEELIB データ・セットのメンバー CELHS003) を、バインド中にインクルードする必要があります。(XPLINK リンク・エディット・オプション (例えば、c89 -Wl,XPLINK ...) が使用される場合、c89/cc/c++ は、自動的にこのサイド・デックをインクルードします)。
- XPLINK (スレッド・セーフ)
- C または C++ のいずれの場合にも、追加のオプション (XPLINK 以外に) は必要ありません。C ライブラリー・ランタイム・サイド・デック (SCEELIB データ・セットのメンバー CELHS003) を、バインド中にインクルードする必要があります。
_SHARE_EXT_VARS
フィーチャー・テスト・マクロ、または必要な _SHR_ の接頭部が付いたフィーチャー・テスト・マクロを使用する必要があります。同様に、
必要なスレッド特定の関数を直接呼び出すことができます (
トピックにある各外部変数の説明を参照)。
- LP64 (非スレッド・セーフ)
- C または C++ のいずれの場合にも、追加のオプション (LP64 以外に) は必要ありません。 C ライブラリー・ランタイム・サイド・デック (SCEELIB データ・セットのメンバー CELQS003) を、バインド中にインクルードする必要があります。
_SHARE_EXT_VARS
フィーチャー・テスト・マクロ、または必要な _SHR_ の接頭部が付いたフィーチャー・テスト・マクロを使用する必要があります。
同様に、
必要なスレッド特定の関数を直接呼び出すことができます (
トピックにある各外部変数の説明を参照)。
- LP64 (スレッド・セーフ)
- C または C++ のいずれの場合にも、追加のオプション (LP64 以外に) は必要ありません。 C ライブラリー・ランタイム・サイド・デック (SCEELIB データ・セットのメンバー CELQS003) を、バインド中にインクルードする必要があります。(LP64 リンク・エディット・オプション (例えば、c89 -Wl、LP64...) が使用される場合、c89/cc/c++ は、自動的にこのサイド・デックをインクルードします)。
_SHARE_EXT_VARS
フィーチャー・テスト・マクロ、または必要な _SHR_ の接頭部が付いたフィーチャー・テスト・マクロを使用する必要があります。
同様に、
必要なスレッド特定の関数を直接呼び出すことができます (
トピックにある各外部変数の説明を参照)。
errno
ランタイム・ライブラリー関数が異常終了したときに、その
関数は、エラーを示すために以下のいずれかを行うことができます。
- 設定される値に errno を設定する。
- 文書化されない値に errno を設定する。strerror() または perror() を使用して、その errno に関連したメッセージを入手できます。
- errno を設定しない。
- errno をクリアする。
errno.h も参照してください。
daylight
tzset() で設定する夏時間フラグ。tzset() が、ctime()、localtime()、mktime()、および strftime() などの他の時間帯関連の関数によって、暗黙的に呼び出されることに注意してください。
注: スレッド特定値の daylight にアクセスする
には、__dlght() 関数を使用します。
time.h も参照してください。
getdate_err
この変数は、getdate() 関数でエラーが起こったときに、次の値に設定されます。
- DATEMSK 環境変数が NULL または未定義。
- テンプレート・ファイルを読み取り用にオープンできない。
- ファイル状況情報を得るのに失敗した。
- テンプレート・ファイルが通常のファイルでない。
- テンプレート・ファイルの読み取り中に、エラーが検出された。
- メモリーの割り振りに失敗した (十分なメモリーが使用可能でない)。
- テンプレート・ファイル内のどの行も、入力指定と一致しない。
- 無効な入力指定。例えば、2 月 31 日、あるいは time_t (エポック (1970 年 1 月 1 日の真夜中 (UTC)) から数えた秒数を示す)で表現できない時刻。
- 現在時刻を決定することができない。
errno への変更は未指定です。
注: この値は、z/OS UNIX サービスに固有です。
getdate64() インターフェースは、getdate() インターフェースと同じ、getdate_err のスレッド固有値へのポインターに影響を与え、同じ getdate_err 値を使用します。
注: getdate_err のスレッド固有の値にアクセスするには、__gderr() 関数を使用します。getdate64() 関数は、getdate() 関数と同じく、getdate_err のスレッド固有値へのポインターに影響を与えます。
time.h も参照してください。
h_errno
ネットワーク・ネーム・サーバーがエラーを検出したときの特定エラー・コードを保留する整数。ネットワーク・ネーム・サーバーは、gethostbyname() および gethostbyaddr() 関数で使用します。
注: h_errno のスレッド固有の値にアクセスする
には、__h_errno() 関数を使用します。netdb.h も参照してください。
注: この変数は、従来からの運用上の理由から保持されています。しかし、
この変数は gethostbyaddr() および gethostbyname() 関数に関連してのみ使用されていて、
これらの関数は Single UNIX Specification、バージョン
3 で廃止候補になったため、h_errno 変数も将来廃止される可能性があります。
__loc1
制約事項: この外部変数は AMODE 64 ではサポートされません。
入力ストリングの中の最初の一致文字を指すために regex() 関数で設定されるグローバル文字ポインター。 __loc1 のスレッド固有の値にアクセスする
には、____loc1() 関数を使用します。
注:
この変数は、従来からの運用上の理由から保持されています。これは Single UNIX Specification、バージョン 2 のレガシー機能でしたが、
既に廃止され、Single UNIX Specification、バージョン 3 の一部として
サポートされていません。新しいアプリケーションでは <regex.h> ヘッダーでサポート
されているインターフェースを使用していください。これらのインターフェースは、
IEEE 標準 1003.1-2001 正規表現と
互換性を持つ完全な国際化正規表現の機能を提供します。
Single UNIX Specification、バージョン 3 のために
書かれたアプリケーションで、このシンボルを引き続き使う必要がある場合は、
標準システム・ヘッダーを組み込む前に、フィーチャー・テスト・マクロ _UNIX03_WITHDRAWN を
定義してください。マクロは、Single UNIX Specification、バージョン 3 に移動された
すべてのインターフェースおよびシンボルを公開します。libgen.h も参照してください。
loc1
制約事項: この外部変数は AMODE 64 ではサポートされません。
step() によって使用される正規表現と突き合わせる文字へのポインター。この値は、フェッチ・モジュールへの呼び出しには
伝搬されません。
注:
この変数は、従来からの運用上の理由から保持されています。これは Single UNIX Specification、バージョン 2 のレガシー機能でしたが、
既に廃止され、Single UNIX Specification、バージョン 3 の一部として
サポートされていません。新しいアプリケーションでは <regex.h> ヘッダーでサポート
されているインターフェースを使用していください。これらのインターフェースは、
IEEE 標準 1003.1-2001 正規表現と
互換性を持つ完全な国際化正規表現の機能を提供します。regexp.h も参照してください。
loc2
制約事項: この外部変数は AMODE 64 ではサポートされません。
step() によって使用される正規表現と突き合わせる文字へのポインター。この値は、フェッチ・モジュールへの呼び出しには
伝搬されません。
注:
この変数は、従来からの運用上の理由から保持されています。これは Single UNIX Specification、バージョン 2 のレガシー機能でしたが、
既に廃止され、Single UNIX Specification、バージョン 3 の一部として
サポートされていません。新しいアプリケーションでは <regex.h> ヘッダーでサポート
されているインターフェースを使用していください。これらのインターフェースは、
IEEE 標準 1003.1-2001 正規表現と
互換性を持つ完全な国際化正規表現の機能を提供します。regexp.h も参照してください。
locs
制約事項: この外部変数は AMODE 64 ではサポートされません。
advance() によって使用され、ストリングの正規表現のマッチングを停止します。この値は、フェッチ・モジュールへの呼び出しには
伝搬されません。regexp.h も参照してください。
注:
この変数は、従来からの運用上の理由から保持されています。これは Single UNIX Specification、バージョン 2 のレガシー機能でしたが、
既に廃止され、Single UNIX Specification、バージョン 3 の一部として
サポートされていません。新しいアプリケーションでは <regex.h> ヘッダーでサポート
されているインターフェースを使用していください。これらのインターフェースは、
IEEE 標準 1003.1-2001 正規表現と
互換性を持つ完全な国際化正規表現の機能を提供します。
optarg
変数を解析するオプションとして、getopt() により使用される文字ポインター。
注: optarg のスレッド固有の値にアクセスする
には、__opargf() 関数を使用します。
注: この変数は Single UNIX Specification、バージョン 3 では
stdio.h から除去され、unistd.h の中で Version 3 用のみとして公開されています。
stdio.h と unistd.h も
参照してください。
opterr
getopt() によって使用されるエラー値。
注: opterr のスレッド固有の値にアクセスする
には、__operrf() 関数を使用します。
注: この変数は Single UNIX Specification、バージョン 3 では
stdio.h から除去され、unistd.h の中で Version 3 用のみとして公開されています。
stdio.h と unistd.h も
参照してください。
optind
変数を解析するオプションとして getopt() により使用される整数ポインター。
注: optind のスレッド固有の値にアクセスする
には、__opindf() 関数を使用します。
注: この変数は Single UNIX Specification、バージョン 3 では
stdio.h から除去され、unistd.h の中で Version 3 用のみとして公開されています。
stdio.h と unistd.h も
参照してください。
optopt
変数を解析するオプションとして getopt() により使用される整数ポインター。
注: optopt のスレッド固有の値にアクセスする
には、__opoptf() 関数を使用します。
注: この変数は Single UNIX Specification、バージョン 3 では
stdio.h から除去され、unistd.h の中で Version 3 用のみとして公開されています。
stdio.h と unistd.h も
参照してください。
signgam
lgamma() の符号のためのストレージ。この関数はスレッド特定にデフォルト指定されます。math.h も参照してください。
stderr
標準エラー・ストリーム。標準エラー・ファイルの
エンクレーブ・レベル・ストリーム・ポインターを指すため、外部変数が初期化されます。マルチスレッド関数はありません。stdio.h も参照してください。
stdin
標準入力ストリーム。標準入力ファイルの
エンクレーブ・レベル・ストリーム・ポインターを指すため、外部変数が初期化されます。マルチスレッド関数はありません。stdio.h も参照してください。
stdout
標準出力ストリーム。標準出力ファイルの
エンクレーブ・レベル・ストリーム・ポインターを指すため、外部変数が初期化されます。マルチスレッド関数はありません。stdio.h も参照してください。
t_errno
X/Open トランスポート・インターフェース (XTI) 関数の 1 つで障害が起こったときに特定のエラー・コードを
保持する整数。
t_errno のスレッド固有の値にアクセスする
には、
__t_errno() 関数を使用します。
注: t_errno のスレッド固有の値にアクセスする
には、__t_errno() 関数を使用します。
xti.h も参照してください。
timezone
UTC と tzset() により設定される、標準時との差を示す長整数。tzset() が、ctime()、localtime()、mktime()、および strftime() などの他の時間帯関連の関数によって、暗黙的に呼び出されることに注意してください。
注: timezone のスレッド固有の値にアクセスする
には、__tzone() 関数を使用します。
time.h も参照してください。
tzname
tzset() と ctime() によって使用される、時間帯ストリングのサイズ不定の配列への文字ポインター。*tzname 変数には、標準および夏時間の時間帯名が入ります。TZ 環境変数が存在して正しい場合、tzname は TZ から設定されます。そうでない場合、tzname は LC_TOD ロケール・カテゴリーから設定されます。説明は、tzset() 関数を参照してください。マルチスレッド関数はありません。time.h も参照してください。