標準
標準/拡張機能 |
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 が見つかりませんでした。 |
使用上の注意
- z/OS® UNIX System Services に関する考慮事項 -- マルチスレッド・アプリケー
ションにおいて、__le_msg_get() は、起動するスレッドにのみ作用します。
ただし、__le_msg_get() は、エンクレーブの NATLANG 値を使用します。
__le_msg_get() のそれ以降の呼び出しは、特定の条件の場合、最初の呼び出しの時
に有効な NATLANG 値を使用します。