#include #include #include #include #include #include #include #include #include #include #define TRUE 0 #define FALSE -1 typedef struct { char NM[10]; char LIB[10]; } QNAME; /* Define the qualified name */ QNAME inname; /* Qualified user space name */ typedef struct { int BYTESPRO; int BYTESAVL; char EXCPID[7]; char RESRVD; char EXCPDATA[100]; } ERRSTRUCTURE; /* Define the error return structure */ ERRSTRUCTURE errcode; /* Error Code Structure */ volatile _INTRPT_Hndlr_Parms_T ca; void main(void){ char extattrib[10]; /* External attributes */ long int initialsize; char initialvalue; char authority[10]; char description[50]; char replace[10], reffillib[21], RECORD[11], buff[51]; typedef struct { char fldnam[10]; char fldtyp[1]; int input; int fldbyte; int fldlen; int flddec; char colhdg1[20]; char colhdg2[20]; char colhdg3[20]; char fldtxt[50]; } FLDBUF; FLDBUF fldbuf[2048]; int fldsu = 0, offset, size, i; 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; } header_struct; header_struct inspace; Qdb_Lfld_FLDL0100_t FLDL0100; printf("** TESTUSLFLD: フィールド一覧表 **\n"); getchar(); /*(1) ユーザー・スペースを作成 */ errcode.BYTESPRO = errcode.BYTESAVL = 0; memset(&inname, 0, sizeof(QNAME)); memcpy(inname.NM, "QUSLFLD ", 10); memcpy(inname.LIB, "QTEMP ", sizeof(inname.LIB)); initialsize = 1000; initialvalue = '\0'; memcpy(authority, "*ALL ", sizeof(authority)); memset(description, ' ', sizeof(description)); memcpy(replace, "*YES ", sizeof(replace)); memcpy(extattrib, "PF ", sizeof(extattrib)); QUSCRTUS((char *)(&inname), extattrib, initialsize, &initialvalue, authority, description, replace, (char *)(&errcode)); /*(2) フィールド一覧を作成 */ strcpy(reffillib, "SHOHIN QTRFIL "); strcpy(RECORD, "SHOHINR "); QUSLFLD("QUSLFLD QTEMP ", "FLDL0100", reffillib, RECORD, "1", (char *)(&errcode)); QUSRTVUS("QUSLFLD QTEMP ",0x01,sizeof(inspace),&inspace, (char*)&errcode); offset = inspace.list_section_offset +1; size = inspace.size_of_entry; for(i = 0; i %d 個のフィールドが見つかりました。 \n", fldsu); getchar(); }