Systemwalker Operation Manager リファレンスマニュアル - UNIX/Windows(R)共通 - |
目次 索引 |
第17章 API情報 | > 17.3 ジョブ実行制御API |
ジョブ状態獲得API(Mp_StatusJob)について説明します。
ジョブの状態を獲得します。ジョブが終了状態である場合、ジョブの終了コードを獲得できます。
#include "f3cuapi.h" |
#include "mjesapi.h" |
NULLを指定してください。
状態を獲得するジョブのジョブ名を指定します。NULLを指定することもできます。NULLを指定した場合は、jobnoで指定されたジョブ番号によって状態を獲得するジョブを指定してください。
状態を獲得するジョブのジョブ番号を指定します。jobnameにNULLを指定した場合、および同名ジョブが複数存在する場合は、必ず指定してください。
NULLを指定してください。
ジョブの終了コード返却用領域のアドレスを指定します。ジョブが終了状態の場合、終了コードが格納されます。
システム管理者(Administratorsグループに属するユーザ/スーパーユーザ)が他人のジョブの状態を獲得する場合に指定します。状態の獲得対象ジョブの所有者名を指定してください。所有者名を指定しない場合はNULLを指定してください。
復帰値 |
意 味 |
0 |
指定したジョブは存在しません。 |
1 |
実行待ち状態です。 |
2 |
実行保留状態です。 |
3 |
実行中です。 |
4 |
出力保留状態です。 |
5 |
ジョブは終了状態です。 |
-1 |
システムエラーが発生しました。 |
-1000以下 |
ジョブ実行制御において、エラーが検出されたため、状態の獲得処理を中断しました。 なお、エラーメッセージ獲得APIを使用して、エラーメッセージを獲得することができます。 |
引数が無効アドレスを指している場合、当関数は異常終了し、その動作は定義されません。
ジョブ状態獲得APIのプログラム例を以下に示します。
#include <windows.h> #include <stdio.h> #include "f3cuapi.h" int main (int argc, char **argv) { long jobno = 0; long rtn = 0; unsigned long compcode = 0; char errmsg[256+1]; /* * initialization working area */ memset(errmsg, 0x00, sizeof(errmsg)); if (argc != 2) { printf ("Usage: %s <jobno>\n", argv[0]); return (1); } /* * set jobno */ jobno = atoi(argv[1]); /* * call Mp_StatusJob() API */ rtn = Mp_StatusJob (NULL, NULL, jobno, NULL, &compcode, NULL); /* * check return code of Mp_StatusJob() API */ if (rtn == 0) { printf ("Job %d is not found.\n", jobno); return (0); } else if (rtn == 1) { printf ("Job %d is waiting for execution.\n", jobno); return (0); } else if (rtn == 2) { printf ("Job %d is holding for execution.\n", jobno); return (0); } else if (rtn == 3) { printf ("Job %d is executing.\n", jobno); return (0); } else if (rtn == 4) { printf ("Job %d is holding for output.\n", jobno); return (0); } else if (rtn == 5) { printf ("Job %d was completed. completion code = %d\n", jobno, compcode); return (0); } else if (rtn == -1) { printf ("GetLastError() is %d.\n", GetLastError()); } else if (rtn <= -1000) { printf ("Error code is %d.\n", rtn); Mp_GetMJESerror (errmsg); printf ("errmsg = %s\n", errmsg); } return (1); }
#include <stdio.h> #include <errno.h> #include "mjesapi.h" int main (int argc, char **argv) { int jobno = 0; int rtn = 0; unsigned int compcode = 0; char errmsg[256+1]; /* * initialization working area */ memset(errmsg, 0x00, sizeof(errmsg)); if (argc != 2) { printf ("Usage: %s <jobno>\n", argv[0]); return (1); } /* * set jobno */ jobno = atoi(argv[1]); /* * call Mp_StatusJob() API */ rtn = Mp_StatusJob (NULL, NULL, jobno, NULL, &compcode, NULL); /* * check return code of Mp_StatusJob() API */ if (rtn == 0) { printf ("Job %d is not found.\n", jobno); return (0); } else if (rtn == 1) { printf ("Job %d is waiting for execution.\n", jobno); return (0); } else if (rtn == 2) { printf ("Job %d is holding for execution.\n", jobno); return (0); } else if (rtn == 3) { printf ("Job %d is executing.\n", jobno); return (0); } else if (rtn == 4) { printf ("Job %d is holding for output.\n", jobno); return (0); } else if (rtn == 5) { printf ("Job %d was completed. completion code = %d\n", jobno, compcode); return (0); } else if (rtn == -1) { printf ("errno is %d.\n", errno); } else if (rtn <= -1000) { printf ("Error code is %d.\n", rtn); Mp_GetMJESerror (errmsg); printf ("errmsg = %s\n", errmsg); } return (1); }
目次 索引 |