__le_msg_get() - Language Environment のメッセージの入手

標準

標準/拡張機能 C/C++ 依存項目

Language Environment

両方 AMODE 64

形式

#include <__le_api.h>

void  *__le_msg_get(_FEEDBACK * cond_token,
                    _CHAR80 message_area,
                    _INT4 * msg_index,
                    _FEEDBACK * fc);

機能説明

ユーザー提供の条件トークンに対応する Language Environment® のメッセージを、渡さ れたメッセージ領域で検索、フォーマット設定、および保管します。 呼び出し元は、後で、このメッセージを取り出して変更したり、出力として書き出 したりできます。

パラメーター
説明
cond_token
呼び出し元から提供された 16 バイトの条件トークン。
message_area
メッセージが置かれる、固定長 80 文字ストリング。
注: メッセージは左寄せで、右側にはブランクが埋め込まれます。
msg_index
呼び出し元に戻される 4 バイトの 2 進整数。

msg_index は、__le_msg_get() の最初の呼び出しではゼロに設定 されなければなりません。 メッセージが message_area に収めるには大きすぎる場合、 メッセージへのインデックスとして msg_index が戻されます。 それ以降の呼び出しでは、そのメッセージの残り部分を取り出すために、このイン デックスが使用されます。 フィードバック・コードも戻されて、メッセージが切り捨てられたことが示されま す。 メッセージ全体が戻される場合、msg_index はゼロです。

msg_idex には、メッセージの長さに基づいて異なる結果が入ります。
  • メッセージが 80 文字より短い場合、最初の呼び出しでメッセージ全体が戻さ れます。 msg_index には、0 が入ります。
  • メッセージが正確に 80 文字の場合、最初の呼び出しでメッセージ全体 が戻されます。 msg_index には、0 が入ります。
  • メッセージが 80 文字より長い場合、メッセージはセグメントに分割されます。 msg_index には、戻されるメッセージ全体に対する累積インデックスが入 っているのではなく、戻されたばかりのセグメントのインデックスだけが入っていま す。 必要な場合、累積カウントを保持するのはユーザーの責任です。 メッセージが長すぎる場合、次のようになる可能性があります。
    • メッセージが 80 文字より長く、最初の 80 文字内に少なくとも 1 つのブラン クが含まれている場合、最後のブランクまでのストリング (最後のブランクを含む) が 最初の呼び出しで戻される。
    • 80 番目の文字が非ブランクの場合 (81 番目の文字がブランクであっても)、 msg_index には、最後のブランク (80 より小さいもの) のインデックスが入 れられ、次の呼び出しは次の文字から開始される。
    • 80 番目の文字がブランクの場合、msg_index には 80 が入り、次の 呼び出しは 81 番目の文字、ブランク、または非ブランクから開始される。
    • メッセージが 80 文字より長く、少なくとも最初の 80 文字がすべて非ブラン クの場合、最初の 80 文字が戻される。 次の呼び出しは、ブランクを追加せず、81 番目の文字から開始される。 msg_index には、80 が入る。
fc
この関数の結果を示す 16 バイトのフィードバック・コード。
表 1. __le_msg_get() のフィードバック・コード
コード 重大度 メッセージ番号 メッセージ・テキスト
CEE000 0 - - 関数は正常に完了しました。
CEE036 3 102 認識されない条件トークンが関数に渡されて、使用できませんでした。
CEE0E2 3 450 メッセージ番号 message-number と機能 ID facility-id を持つ 条件トークンのメッセージ挿入が見つかりませんでした。
CEE0E6 3 454 機能 ID facility-id について、メッセージ番号 message-number が見つかりませんでした。
CEE0E7 1 455 メッセージ番号 message-number と機能 ID facility-id を持つ メッセージが切り捨てられました。
CEE0EA 1 458 メッセージ・リポジトリー repository-name が見つかりませんでした。

使用上の注意

  1. z/OS® UNIX System Services に関する考慮事項 -- マルチスレッド・アプリケー ションにおいて、__le_msg_get() は、起動するスレッドにのみ作用します。 ただし、__le_msg_get() は、エンクレーブの NATLANG 値を使用します。 __le_msg_get() のそれ以降の呼び出しは、特定の条件の場合、最初の呼び出しの時 に有効な NATLANG 値を使用します。

関連情報