__console() - コンソール通信サービス

標準

標準/拡張機能 C/C++ 依存項目
z/OS®UNIX 両方  

形式

#include <sys/__messag.h>

int __console(struct __cons_msg *cons, char *modstr, int *concmd);

機能説明

__console() 関数は、オペレーターのコンソールと通信を行うときに 使用します。__console() 関数により、ユーザーは、オペレーターのコンソールに メッセージを送信したり、コンソールからの変更/停止要求を待機することが できます。

サポートされるパラメーターは次のとおりです。
cons
引数が NULL でない場合、cons はオペレーターの コンソールに送信されるメッセージを指定する構造体を指します。引数が NULL の場合、メッセージは送信されません。
modstr
オペレーターのコンソールで入力されたデータを __console() が戻すストリングを指定します。modstr が NULL でない場合、呼び出し元は、オペレーターが 起動ジョブを MODIFY して、'APPL=' パラメーターを指定するまで 待機します。modstr の長さは 128 バイトとします。MODIFY コンソール・コマンドの詳細について は、「z/OS MVS システム・コマンド」を参照してください。引数が NULL の場合、__console() 関数は、オペレーター・コンソール・コマンドを待機しません。
concmd
コンソール・コマンドが起動ジョブに対して発行された 場合、__console() 関数はコマンド型を設定します。有効な型は、_CC_modify (変更要求を受け取る 関数) と _CC_stop (停止要求を受け取る関数) です。
cons 構造体は、<sys/__messag.h> ヘッダーに定義され、その形式は、以下 のとおりです。
    struct __cons_msg   {
      short __reserved0;
      char  __reserved1[2];
      union   {
         struct   {
            int  __msg_length;
            char *__msg;
            char __reserved2[8];
         } __f1;
      }  __format;
    };
__reserved0
今後の使用のため予約されています。
__reserved1[2]
今後の使用のため予約されています。
__format.__f1.__msg_length
NULL 終了文字を含まないメッセージの長さ。
__format.__f1.__msg
オペレーター・コンソールに送信される メッセージを含む文字ストリング。
__format.__f1.__reserved2[8]
今後の使用のため予約されています。
注: メッセージ長は、適切な特権を持つ呼び出し元の場合は、1 文字 ~ 17850 文字、適切な特権を持たない呼び出し元の場合は、1 文字 ~ 17780 文字の間でなければなりません。コンソールに書き込まれる行数は、255 に制限されています。特権を持たないユーザーの場合、書き込まれる行のうちの 1 行は、メッセージ ID と呼び出し元のログイン名のために使用されます。メッセージ長が制限を超えた場合、1 行も書き込まれないで、この サービスは EINVAL を戻します。行数が制限を超えた場合、このサービスは EINVAL を戻しますが、最初 の 255 行がコンソールに書き込まれます。

戻り値

正常に実行された場合、__console() は 0 を戻します。

正常に実行されなかった場合、__console() は -1 を戻して、errno を次のいずれかの 値に設定します。
エラー・コード
説明
EFAULT
次のエラーのいずれかが検出されました。
  • cons 構造体の全部または一部が、呼び出し元から アドレッシングできません。
  • modstr ストリングの全部または一部が、呼び出し元から アドレッシングできません。
EINTR
__console() が、シグナルにより割り込まれました。
EINVAL
cons 構造体にはエラーが含まれています。
EMVSERR
z/OS 環境エラーまたは内部エラーが発生しました。

CELEBC41

⁄* CELEBC41

   This example prints a simple message to the console using the
   __console() function.

 *⁄
#include <sys⁄__messag.h>
#include <errno.h>
#include <string.h>
#include <stdio.h>

int main(int argc, char** argv) {
   struct __cons_msg cmsg;
   char buf[256] = "A message on the console";
   int rc;
   int cmsg_cmd = 0;

   ⁄* fill in the __cons_msg structure *⁄
   cmsg.__format.__f1.__msg = buf;
   cmsg.__format.__f1.__msg_length = strlen(buf);

   rc = __console(&cmsg,NULL,&cmsg_cmd);
   if(rc == -1) {
      printf("__console() failed¥n");
      printf("%s¥n",strerror(errno));
   }
   else {
      printf("__console() successful. Check console for message.¥n");
   }

   return 0;
}

関連情報