#include #include #include #include #include #include #include #include #define TRUE 0 #define FALSE -1 volatile _INTRPT_Hndlr_Parms_T ca; 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 name[11]; Qus_OBJL0300_t objl0300; printf("** TESTUSLO : オブジェクト一覧表 **\n"); getchar(); /*(1) ユーザー・スペースの作成 */ errcode.BYTESPRO = 160; errcode.BYTESAVL = 0; memcpy(usname.name, "LIBSPC ", 10); memcpy(usname.lib, "QTEMP ", 10); QUSCRTUS(&usname, "PF ", 1000, " ", "*ALL ", "QUSLOBJ ユーザー・スペース ", "*YES ", &errcode); if(errcode.BYTESAVL != 0){/* APIERR */ printf("ApiError MSGID = %s\n", errcode.MSGID); getchar(); return; }/* APIERR */ /*(2) QUSLOBJ の実行 */ QUSLOBJ(&usname, "OBJL0300", "*ALLUSR *ALL ", "*LIB ", &errcode); /*(3) QUSRTVUS によるユーザー・スペースの検索 */ QUSRTVUS(&usname, 0x01, sizeof(inspace), &inspace, &errcode); offset = inspace.list_section_offset +1; size = inspace.size_of_entry; printf("count = %d\n", inspace.number_of_entries); getchar(); for(i = 0; i