外部変数

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() 関数でエラーが起こったときに、次の値に設定されます。

  1. DATEMSK 環境変数が NULL または未定義。
  2. テンプレート・ファイルを読み取り用にオープンできない。
  3. ファイル状況情報を得るのに失敗した。
  4. テンプレート・ファイルが通常のファイルでない。
  5. テンプレート・ファイルの読み取り中に、エラーが検出された。
  6. メモリーの割り振りに失敗した (十分なメモリーが使用可能でない)。
  7. テンプレート・ファイル内のどの行も、入力指定と一致しない。
  8. 無効な入力指定。例えば、2 月 31 日、あるいは time_t (エポック (1970 年 1 月 1 日の真夜中 (UTC)) から数えた秒数を示す)で表現できない時刻。
  9. 現在時刻を決定することができない。

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.hunistd.h も 参照してください。

opterr

getopt() によって使用されるエラー値。
注: opterr のスレッド固有の値にアクセスする には、__operrf() 関数を使用します。
注: この変数は Single UNIX Specification、バージョン 3 では stdio.h から除去され、unistd.h の中で Version 3 用のみとして公開されています。 stdio.hunistd.h も 参照してください。

optind

変数を解析するオプションとして getopt() により使用される整数ポインター。
注: optind のスレッド固有の値にアクセスする には、__opindf() 関数を使用します。
注: この変数は Single UNIX Specification、バージョン 3 では stdio.h から除去され、unistd.h の中で Version 3 用のみとして公開されています。 stdio.hunistd.h も 参照してください。

optopt

変数を解析するオプションとして getopt() により使用される整数ポインター。
注: optopt のスレッド固有の値にアクセスする には、__opoptf() 関数を使用します。
注: この変数は Single UNIX Specification、バージョン 3 では stdio.h から除去され、unistd.h の中で Version 3 用のみとして公開されています。 stdio.hunistd.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 も参照してください。