#include #include #include #include #include #include #include #include #define TRUE 0 #define FALSE -1 typedef struct { int BYTESPRO; int BYTESAVL; char MSGID[7]; char RESRVD; char EXCPDATA[100]; } ERRSTRUCTURE; /* Define the error return structure */ ERRSTRUCTURE errcode;/* Error Code Structure for RCVMSG */ void main(void){ typedef struct { char name[10]; char lib[10]; } USNAME; USNAME usname; typedef _Packed struct header_struct { char user_data[64]; int generic_header_size; char header_version[4]; char format_name[8]; char program_name[10]; char time_generated[13]; char information_status; int usrspc_used; int parm_section_offset; int parm_section_size; int header_section_offset; int header_section_size; int list_section_offset; /*( 最初の開始位置 )*/ int list_section_size; int number_of_entries; /*( 項目数 )*/ int size_of_entry; /*( 1 項目の長さ )*/ } HEADER_STRUCT; HEADER_STRUCT inspace; int offset, size, i, len; char record[11]; Qdb_Lrcd_RCDL0100_t rcdl0100; printf("** TESTUSL : レコード様式のリスト **\n"); getchar(); /*(1) ユーザー・スペースの作成 */ errcode.BYTESPRO = 160; errcode.BYTESAVL = 0; memcpy(usname.name, "USLSPC ", 10); memcpy(usname.lib, "QTEMP ", 10); QUSCRTUS(&usname, "PF ", 1000, " ", "*ALL ", "QUSLRCD ユーザー・スペース ", "*YES ", &errcode); if(errcode.BYTESAVL != 0){/* APIERR */ printf("ApiError MSGID = %s\n", errcode.MSGID); getchar(); return; }/* APIERR */ /*(2) QUSLRCD の実行 */ QUSLRCD(&usname, "RCDL0100", "SHOHIN QTRFIL ", "0", &errcode); /*(3) QUSRTVUS によるユーザー・スペースの検索 */ QUSRTVUS(&usname, 0x01, sizeof(inspace), &inspace, &errcode); offset = inspace.list_section_offset +1; size = inspace.size_of_entry; for(i = 0; i