gethostname() 関数呼び出し

gethostname() 関数呼び出しは TCP/IP スタックにより処理されます。単一スタック (INET) 環境では、アクティブ・スタックのホスト名が戻されます。複数スタック (CINET) 環境では、gethostname() 呼び出しは z/OS® UNIX ユーザーがアフィニティーを設定したスタックに送られるか (例えば、_BPXK_SETIBMOPT_TRANSPORT 環境変数を設定)、スタックのアフィニティーがない場合はデフォルトのスタックに送られます。CINET 環境のデフォルト・スタックは、BPXPRMxx parmlib メンバーの SUBFILESYSTYPE ステートメントにより決まります。デフォルト・スタックがアクティブでない場合は、アクティブになった最初のスタックがデフォルト・スタックとして指定されます。現在のデフォルト・スタックは、DISPLAY OMVS,PFS オペレーター・コマンドを使用して表示できます。 コマンド出力の FLAGS 列では、どのスタックがデフォルトであるかを示します。DISPLAY コマンド出力については、「z/OS MVS システム・コマンド」を参照してください。 z/OS によるデフォルト・スタックの選択方法、およびスタック・アフィニティーの確立方法については、「z/OS UNIX System Services 計画」を参照してください。

gethostname() 関数呼び出しを受け取る TCP/IP スタックは、スタックの初期設定時に決定されたホスト名の値を戻します。初期設定の間、スタックの構成要素は __iphost() 関数呼び出しを発行してスタックの TCPIP.DATA HOSTNAME ステートメント値を取得します。
注: HOSTNAME ステートメントを変更した場合は、TCPIP を再始動して、変更を有効にする必要があります。
スタックの TCPIP.DATA ステートメント情報を検出するために、スタックの開始されたタスクに対する z/OS UNIX 検索順序が使用されます。ホスト名は以下の順序で判定されます。
  1. 検出された TCPIP.DATA 情報に有効な HOSTNAME ステートメントがある場合は、その値が戻されます。HOSTNAME ステートメントにシステム名のパラメーターが指定されていた場合は、その値が現在のシステム名と一致するかどうかを判別するためにパラメーター値が次のいずれかと比較されます。
    • VMCF と TNF を再開不能サブシステムとして構成した場合、システム名は PARMLIB の IEFSSNxx メンバーに指定されます。
    • 再始動可能なサブシステムとして VMCF および TNF を構成した場合は、 システム名は、EZAZSSI 開始プロシージャーの P= パラメーターの値から取得されます。
  2. 有効な HOSTNAME ステートメントがない場合は、VMCF が開始された VMCF ノード名が戻されます。
  3. スタックが開始されたときに VMCF がアクティブでなかった場合は、CVTSNAME 値 (IPL 中に使用された IEASYSxx メンバーの SYSNAME=値) が戻されます。
TCPIP.DATA からのホスト名に使用される大/小文字は、HOSTNAME ステートメントで指定されたものです。VMCF または CVTSNAME の場合、名前は大文字になります。

z/OS UNIX hostname コマンドは、z/OS UNIX シェル内から出す必要があります。