ライブラリーの使用方法
JP1/全銀TCP APIライブラリーは,JP1/全銀TCPのファイル伝送機能をユーザープログラムから利用するときに使用します。APIライブラリーは,32ビット用(ILP32データモデル)および64ビット用(LP64データモデル)を提供しています。
JP1/全銀TCP APIライブラリーを使用すると,次のことが実現できます。
-
1つのユーザープログラムから,一次局として複数のファイル伝送を実行できます。
-
同期型のファイル伝送では,伝送要求を登録すると,伝送が終了するまで待ち,終了結果を取得できます。
-
非同期型のファイル伝送では,伝送要求の登録だけをして,あとで終了結果だけを取得できます。
言語
ユーザープログラムで使用できる言語を次に示します。
-
C
コーディング
伝送要求の登録は,ZTC_Syn_trans_Ex(),ZTC_Asyn_trans_Ex()の引数に伝送登録情報格納用構造体のアドレスや伝送結果格納用構造体のアドレスを設定します。
-
struct ztc_tran_reqdata_t { char *aite_label; struct change_host_define_t *host_define; struct ztc_tran_label_t *file_labels; struct change_file_define_t *file_define; int count; char reserve[1004]; };
-
- aite_label
-
相手局ラベル名を指定します。
- host_define
-
伝送情報定義の一部を変更して伝送要求を登録する場合は,相手局情報定義の変更内容を格納した構造体を指定します。それ以外の場合は,NULLを指定してください。
- file_labels
-
count(伝送ファイル数)分のファイルラベル名を格納した配列を指定します。
- file_define
-
再送要求を実行する場合は,ファイル情報定義の変更内容を格納した配列を指定します。サイクル管理をしているファイルの再送の場合は,ファイル情報定義の変更内容を格納した配列を指定します。伝送情報定義の一部を変更して伝送要求を登録する場合は,ファイル情報定義の変更内容を格納した構造体を指定します。それ以外の場合は,NULLを指定してください。
- count
-
file_labelsに指定した配列の要素数(伝送ファイル数)を指定します。1〜99の数値で適切な値を指定してください。
- reserve
-
予約領域です。「\0」で初期化してください。
-
struct ztc_tran_rtndata_t { int rtn_detail; int req_number; int *errcode; int *errcode_detail; char reserve[1008]; };
-
- rtn_detail
-
ZTC_Syn_trans_Ex()およびZTC_Even_Ex()の戻り値に対する詳細エラー番号を返します。
- req_number
-
通番を返します。
- errcode
-
伝送の終了結果を伝送ファイル単位で返します。伝送登録情報格納用構造体のcountで指定した数のint型の配列を確保し,そのアドレスを指定します。
例:2ファイルの伝送で2番目のファイル伝送でエラーが発生した場合
errcode[0] = 0 :1番目の伝送ファイルの伝送結果(正常終了)
errcode[1] = 35 :2番目の伝送ファイルの伝送結果(タイムアウト)
- errcode_detail
-
伝送の終了結果に対する詳細エラー番号を伝送ファイル単位で返します。伝送登録情報格納用構造体のcountで指定した数のint型の配列を確保し,そのアドレスを指定します。
例として,詳細エラー番号(AABB)が1399の場合,errcode_detailには0x00001399(Linuxの場合は0x99130000)が設定されます。
正常終了時または詳細エラーコードがないエラー発生時には0が設定されます。
- reserve
-
予約領域です。「\0」で初期化してください。
-
#define LABEL_LEN 32 struct ztc_tran_label_t { char label[LABEL_LEN+1]; };
-
- label
-
ファイルラベル名を指定します。
-
#define REMOTE_CODE_LEN 7 #define PASSWD_LEN 6 #define STRING_LEN 256 #define EXEC_OPT_LEN 25 #define ZTC_CHANGE_DEF_ZGNP 1 #define ZTC_CHANGE_DEF_ZGNC 2 struct change_host_define_t { int changeflg; char exec[STRING_LEN]; int exec_opt[EXEC_OPT_LEN+1]; char remote_code[(REMOTE_CODE_LEN*2)+3]; char own_code[(REMOTE_CODE_LEN*2)+3]; char open_req_pass[(PASSWD_LEN*2)+3]; char open_ans_pass[(PASSWD_LEN*2)+3]; char close_req_pass[(PASSWD_LEN*2)+3] char close_ans_pass[(PASSWD_LEN*2)+3] char ipaddr[STRING_LEN]; int text_ack_cnt; int protocol_name; };
-
- changeflg
-
相手局情報定義の変更設定マクロを指定します。相手局情報定義の変更設定マクロのマクロ値を論理和形式で指定してください。
- exec
-
起動するUAPを指定します。1〜255バイト以内の文字列でフルパスを指定してください。
- exec_opt
-
UAP起動オプションを示すマクロを指定します。詳細については,続けて説明する「・UAP起動オプション設定マクロ」および「・UAP起動オプション設定マクロの内容」を参照してください。
- remote_code
-
相手センタ確認コードを指定します。14桁の16進数で指定してください。
- own_code
-
当方センタ確認コードを指定します。14桁の16進数で指定してください。
- open_req_pass
-
開局要求パスワードを指定します。6バイトの文字列または12桁の16進数で指定してください。
- open_ans_pass
-
開局回答パスワードを指定します。6バイトの文字列または12桁の16進数で指定してください。
- close_req_pass
-
閉局要求パスワードを指定します。6バイトの文字列または12桁の16進数で指定してください。
- close_ans_pass
-
閉局回答パスワードを指定します。6バイトの文字列または12桁の16進数で指定してください。
- ipaddr
-
相手局のIPアドレスまたは相手局のホスト名を指定します。
- text_ack_cnt
-
テキスト連続送受信回数を指定します。0〜15の値で指定してください。
- protocol_name
-
使用するプロトコル(全銀協手順)を指定します。パソコン手順の場合はZTC_CHANGE_DEF_ZGNPを,コンピュータ手順の場合はZTC_CHANGE_DEF_ZGNCを指定してください。
-
#define TRANS_FILE_NAME_LEN 12 #define ACCESSKEY_LEN 6 #define SUB_TRANS_FILE_NAME_LEN 17 #define ZTC_CHANGE_DEF_SEND 1 #define ZTC_CHANGE_DEF_RECV 2 #define ZTC_CHANGE_DEF_APPEND 1 #define ZTC_CHANGE_DEF_WRITE 2 #define ZTC_CHANGE_DEF_TRUE 1 #define ZTC_CHANGE_DEF_FALSE 2 #define ZTC_CHANGE_DEF_FIX 1 #define ZTC_CHANGE_DEF_FLEX 2 #define ZTC_CHANGE_DEF_REMOVE 1 #define ZTC_CHANGE_DEF_NOT_REMOVE 2 #define ZTC_CHANGE_DEF_OK 1 #define ZTC_CHANGE_DEF_NG 2 #define ZTC_RESND 1 struct change_file_define_t { int resndflg; int cycle_number; int changeflg; char exec[STRING_LEN]; int exec_opt[EXEC_OPT_LEN+1]; int mode; int file_mode; char real_file_name[STRING_LEN]; char trans_file_name[(TRANS_FILE_NAME_LEN*2)+3]; char start_req_acckey[(ACCESSKEY_LEN*2)+3]; char start_ans_acckey[(ACCESSKEY_LEN*2)+3]; char end_req_acckey[(ACCESSKEY_LEN*2)+3]; char end_ans_acckey[(ACCESSKEY_LEN*2)+3]; char resend_acckey[(ACCESSKEY_LEN*2)+3]; int record_type; short record_len; int max_text_len; int cmp_mode; int divide_mode; char divide_word; int remove_mode; int nullfile; char sub_trans_file_name[(SUB_TRANS_FILE_NAME_LEN*2)+3]; char yobi[128]; };
-
- resndflg
-
再送要求送信マクロを指定します。
- cycle_number
-
伝送済みのサイクル番号を指定します。サイクル管理をするファイルだけに指定できます。
- changeflg
-
ファイル情報定義の変更設定マクロを指定します。ファイル情報定義の変更設定マクロのマクロ値を論理和形式で指定してください。
- exec
-
起動するUAPを指定します。1〜255バイトの文字列でフルパスを指定してください。
- exec_opt
-
UAP起動オプションを示すマクロを指定します。詳細については,続けて説明する「・UAP起動オプション設定マクロ」および「・UAP起動オプション設定マクロの内容」を参照してください。
- mode
-
ファイル送受信モードを指定します。送信用のファイル定義の場合はZTC_CHANGE_DEF_SENDを,受信用のファイル定義の場合はZTC_CHANGE_DEF_RECVを指定してください。
- file_mode
-
受信ファイル書き込みモードを指定します。受信データをファイルの最後に追加したい場合はZTC_CHANGE_DEF_APPENDを,ファイルの先頭から上書きしたい場合はZTC_CHANGE_DEF_WRITEを指定してください。
- real_file_name
-
実ファイル名を指定します。1〜255バイトの文字列でフルパスを指定してください。
- trans_file_name
-
伝送ファイル名を指定します。12バイトの文字列または24桁の16進数で指定してください。
- start_req_acckey
-
開始要求アクセスキーを指定します。6バイトの文字列または12桁の16進数で指定してください。
- start_ans_acckey
-
開始回答アクセスキーを指定します。6バイトの文字列または12桁の16進数で指定してください。
- end_req_acckey
-
終了要求アクセスキーを指定します。6バイトの文字列または12桁の16進数で指定してください。
- end_ans_acckey
-
終了回答アクセスキーを指定します。6バイトの文字列または12桁の16進数で指定してください。
- resend_acckey
-
再送要求アクセスキーを指定します。6バイトの文字列または12桁の16進数で指定してください。
- record_type
-
ファイルレコード形式を指定します。固定長形式の場合はZTC_CHANGE_DEF_FIXを,可変長形式の場合はZTC_CHANGE_DEF_FLEXを指定してください。
- record_len
-
ファイルレコード長を指定します(単位:バイト)。ファイルレコード形式が固定長の場合に有効になります。1〜32,767の任意の数値を指定してください。
- max_text_len
-
最大伝送テキスト長(全銀協標準通信プロトコルの定義する伝送テキストの最大長)を指定します(単位:バイト)。7〜43,700の数値を指定してください。
- cmp_mode
-
圧縮モードを指定します。圧縮して伝送する場合はZTC_CHANGE_DEF_TRUEを,圧縮しないで伝送する場合はZTC_CHANGE_DEF_FALSEを指定してください。
- divide_mode
-
レコード分割方法を指定します。区切り文字までを1レコードとする場合はZTC_CHANGE_DEF_DIVIDE_CHARを,レコード範囲を自動算出する場合はZTC_CHANGE_DEF_DIVIDE_AUTOを指定します。ファイルレコード形式が可変長の場合に有効になります。
- divide_word
-
区切り文字として使用する文字を指定します。ファイルレコード形式が可変長でレコード分割方法にZTC_CHANGE_DEF_DIVIDE_CHARを指定した場合に有効になります。
- remove_mode
-
区切り文字の扱いを指定します。ZTC_CHANGE_DEF_REMOVEをした場合は,送信時には区切り文字を除いて送信し,受信時には区切り文字を付けてファイルに書き出します。ZTC_CHANGE_DEF_NOT_REMOVEを指定した場合は,送信時には区切り文字を付けたまま送信し,受信時には受け取ったテキストをファイルにそのまま書き出します。レコード分割方法にZTC_CHANGE_DEF_DIVIDE_AUTOを指定した場合,ZTC_CHANGE_DEF_NOT_REMOVEを指定してください。
- nullfile
-
0件ファイルの扱い方を指定します。ZTC_CHANGE_DEF_OKを指定した場合は,0件ファイルを正常扱いします。ZTC_CHANGE_DEF_NGを指定した場合は,0件ファイルをエラー扱いします。
- sub_trans_file_name
-
ファイル名補助情報を指定します。17バイトの文字列または34桁の16進数で指定してください。
- yobi
-
予約領域です。「\0」で初期化してください。
-
#define ZTC_CHANGE_HOST_DEF_EXEC 0x1 #define ZTC_CHANGE_HOST_DEF_EXEC_OPT 0x2 #define ZTC_CHANGE_HOST_DEF_REMOTE_CODE 0x4 #define ZTC_CHANGE_HOST_DEF_OWN_CODE 0x8 #define ZTC_CHANGE_HOST_DEF_OPEN_REQ_PASS 0x10 #define ZTC_CHANGE_HOST_DEF_OPEN_ANS_PASS 0x20 #define ZTC_CHANGE_HOST_DEF_CLOSE_REQ_PASS 0x40 #define ZTC_CHANGE_HOST_DEF_CLOSE_ANS_PASS 0x80 #define ZTC_CHANGE_HOST_DEF_IPADDR 0x400 #define ZTC_CHANGE_HOST_DEF_TEXT_ACK_CNT 0x800 #define ZTC_CHANGE_HOST_DEF_PROTOCOL_NAME 0x1000
-
- ZTC_CHANGE_HOST_DEF_EXEC
-
UAP起動を変更します。
- ZTC_CHANGE_HOST_DEF_EXEC_OPT
-
UAP起動引数を変更します。
- ZTC_CHANGE_HOST_DEF_REMOTE_CODE
-
相手センタ確認コードを変更します。
- ZTC_CHANGE_HOST_DEF_OWN_CODE
-
当方センタ確認コードを変更します。
- ZTC_CHANGE_HOST_DEF_OPEN_REQ_PASS
-
開局要求パスワードを変更します。
- ZTC_CHANGE_HOST_DEF_OPEN_ANS_PASS
-
開局回答パスワードを変更します。
- ZTC_CHANGE_HOST_DEF_CLOSE_REQ_PASS
-
閉局要求パスワードを変更します。
- ZTC_CHANGE_HOST_DEF_CLOSE_ANS_PASS
-
閉局回答パスワードを変更します。
- ZTC_CHANGE_HOST_DEF_IPADDR
-
相手局のIPアドレスを変更します。
- ZTC_CHANGE_HOST_DEF_TEXT_ACK_CNT
-
テキスト連続送受信回数を変更します。
- ZTC_CHANGE_HOST_DEF_PROTOCOL_NAME
-
使用するプロトコル(全銀協手順)を変更します。
- 指定例:
-
相手センタ確認コードと当方センタ確認コードを変更する場合
changeflgに,次のように値を指定します。
def.changeflg = 0
def.changeflg = ZTC_CHANGE_HOST_DEF_REMOTE_CODE | ZTC_CHANGE_HOST_DEF_OWN_CODE;
-
#define ZTC_CHANGE_FILE_DEF_EXEC 0x1 #define ZTC_CHANGE_FILE_DEF_EXEC_OPT 0x2 #define ZTC_CHANGE_FILE_DEF_MODE 0x4 #define ZTC_CHANGE_FILE_DEF_FILE_MODE 0x8 #define ZTC_CHANGE_FILE_DEF_REAL_FILE_NAME 0x10 #define ZTC_CHANGE_FILE_DEF_TRANS_FILE_NAME 0x20 #define ZTC_CHANGE_FILE_DEF_START_REQ_ACCKEY 0x40 #define ZTC_CHANGE_FILE_DEF_START_ANS_ACCKEY 0x80 #define ZTC_CHANGE_FILE_DEF_END_REQ_ACCKEY 0x100 #define ZTC_CHANGE_FILE_DEF_END_ANS_ACCKEY 0x200 #define ZTC_CHANGE_FILE_DEF_RESEND_ACCKEY 0x400 #define ZTC_CHANGE_FILE_DEF_RECORD_TYPE 0x800 #define ZTC_CHANGE_FILE_DEF_RECORD_LEN 0x1000 #define ZTC_CHANGE_FILE_DEF_MAX_TEXT_LEN 0x2000 #define ZTC_CHANGE_FILE_DEF_CMP_MODE 0x4000 #define ZTC_CHANGE_FILE_DEF_DIVIDE_WORD 0x8000 #define ZTC_CHANGE_FILE_DEF_REMOVE_MODE 0x10000 #define ZTC_CHANGE_FILE_DEF_NULLFILE 0x20000 #define ZTC_CHANGE_FILE_DEF_SUB_TRANS_FILE_NAME 0x40000 #define ZTC_CHANGE_FILE_DEF_DIVIDE_MODE 0x80000
-
- ZTC_CHANGE_FILE_DEF_EXEC
-
UAP起動を変更します。
- ZTC_CHANGE_FILE_DEF_EXEC_OPT
-
UAP起動引数を変更します。
- ZTC_CHANGE_FILE_DEF_MODE
-
ファイル送受信モードを変更します。
- ZTC_CHANGE_FILE_DEF_FILE_MODE
-
受信ファイル書き込みモードを変更します。
- ZTC_CHANGE_FILE_DEF_REAL_FILE_NAME
-
実ファイル名を変更します。
- ZTC_CHANGE_FILE_DEF_TRANS_FILE_NAME
-
伝送ファイル名を変更します。
- ZTC_CHANGE_FILE_DEF_START_REQ_ACCKEY
-
開始要求アクセスキーを変更します。
- ZTC_CHANGE_FILE_DEF_START_ANS_ACCKEY
-
開始回答アクセスキーを変更します。
- ZTC_CHANGE_FILE_DEF_END_REQ_ACCKEY
-
終了要求アクセスキーを変更します。
- ZTC_CHANGE_FILE_DEF_END_ANS_ACCKEY
-
終了回答アクセスキーを変更します。
- ZTC_CHANGE_FILE_DEF_RESEND_ACCKEY
-
再送要求アクセスキーを変更します。
- ZTC_CHANGE_FILE_DEF_RECORD_TYPE
-
ファイルレコード形式を変更します。
- ZTC_CHANGE_FILE_DEF_RECORD_LEN
-
ファイルレコード長を変更します。
- ZTC_CHANGE_FILE_DEF_MAX_TEXT_LEN
-
最大伝送テキスト長を変更します。
- ZTC_CHANGE_FILE_DEF_CMP_MODE
-
圧縮モードを変更します。
- ZTC_CHANGE_FILE_DEF_DIVIDE_WORD
-
区切り文字を変更します。
- ZTC_CHANGE_FILE_DEF_REMOVE_MODE
-
区切り文字の扱いを変更します。
- ZTC_CHANGE_FILE_DEF_NULLFILE
-
0件ファイルの扱いを変更します。
- ZTC_CHANGE_FILE_DEF_SUB_TRANS_FILE_NAME
-
ファイル名補助情報を変更します。
- ZTC_CHANGE_FILE_DEF_DIVIDE_MODE
-
レコード分割方法を変更します。
- 指定例:
-
ファイル送受信モードと受信ファイル書き込みモードを変更する場合
changeflgに,次のように値を指定します。
def.changeflg = 0;
def.changeflg = ZTC_CHANGE_FILE_DEF_MODE | ZTC_CHANGE_FILE_DEF_FILE_MODE;
-
#define ZTC_REMOTELBL 1 #define ZTC_STATION 4 #define ZTC_TRNMODE 8 #define ZTC_REQLEN 9 #define ZTC_RRTN 11 #define ZTC_FILE 12 #define ZTC_FILELBL 13 #define ZTC_RCNTCODE 14 #define ZTC_HCNTCODE 15 #define ZTC_OREQPW 16 #define ZTC_ORSPPW 17 #define ZTC_CREQPW 18 #define ZTC_CRSPPW 19 #define ZTC_MREQPW 20 #define ZTC_MRSPPW 21 #define ZTC_IPADDR 22 #define ZTC_REQNO 25 #define ZTC_REALFILE 26 #define ZTC_STARTTIME 28 #define ZTC_STOPTIME 29
-
- ZTC_REMOTELBL
-
相手局ラベル名をオプション引数として指定します。
- ZTC_STATION
-
局種別をオプション引数として指定します。
- ZTC_TRNMODE
-
伝送形態をオプション引数として指定します。
- ZTC_REQLEN
-
このオプションは,ファイル情報定義UAPオプションの場合に限り有効です。
レコード長をオプション引数として指定します。
- ZTC_RRTN
-
終了状態をオプション引数として指定します。
- ZTC_FILE
-
伝送ファイル名をオプション引数として指定します。
- ZTC_FILELBL
-
このオプションは,ファイル情報定義UAPオプションの場合に限り有効です。
伝送ファイルラベル名をオプション引数として指定します。
- ZTC_RCNTCODE
-
相手センタ確認コードをオプション引数として指定します。
- ZTC_HCNTCODE
-
当方センタ確認コードをオプション引数として指定します。
- ZTC_OREQPW
-
開局要求パスワードをオプション引数として指定します。
- ZTC_ORSPPW
-
開局回答パスワードをオプション引数として指定します。
- ZTC_CREQPW
-
閉局要求パスワードをオプション引数として指定します。
- ZTC_CRSPPW
-
閉局回答パスワードをオプション引数として指定します。
- ZTC_MREQPW
-
モード変更要求パスワードをオプション引数として指定します。
- ZTC_MRSPPW
-
モード変更回答パスワードをオプション引数として指定します。
- ZTC_IPADDR
-
相手局のIPアドレスまたは相手ホスト名をオプション引数として指定します。
- ZTC_REQNO
-
通番をオプション引数として指定します。
- ZTC_REALFILE
-
このオプションは,ファイル情報定義UAPオプションの場合に限り有効です。
実ファイル名をオプション引数として指定します。
- ZTC_STARTTIME
-
伝送開始時間をオプション引数として指定します。
- ZTC_STOPTIME
-
伝送終了時間をオプション引数として指定します。
- 指定例:
-
UAP起動オプションとして伝送ファイル名と通番を指定する場合
exec_optに,次のように値を指定します。
def.exec_opt[0] = ZTC_FILE;
def.exec_opt[1] = ZTC_REQNO;
def.exec_opt[2] = 0;