#pragma inspect, symbols
#pragma nolist
#pragma ENV LIBSPACE
#include <stdio.h>
#include <string.h>
#include <tal.h>
#include <cextdecs(FILE_OPEN_,FILE_CLOSE_,FILE_GETINFO_,FILENAME_DECOMPOSE_,WRITEX,READX,FILE_SETKEY_,WRITEUPDATEX,FILENAME_RESOLVE_,FILE_SETPOSITION_,PROCESS_GETINFOLIST_,USER_GETINFO_,FILENAME_MATCH_)>
#include <fcntl.h>
#include <stdlib.h>
#include <stddef.h>
#include <ctype.h>
#include "$SYSTEM.ZSYSDEFS.ZSYSC (filename_constant,process_itemcodes)"
#pragma list
/*VARIABLES*/
const char program_id_DB[] = "CSRTST";
const char program_name_DB_c[ZSYS_VAL_LEN_FILENAME] = {"$DSMSCM.CSR.CSRTST"};
/*PROCESS COMMAND FUNCTION*/
processCMD(char string[])
{
struct local_stack_def{
_cc_status cc;
char command_E[30];
char DataEntry[200];
char user_id_E[200];
char curr_vol_subvol[ZSYS_VAL_LEN_FILENAME];
char program_name_DB[ZSYS_VAL_LEN_FILENAME];
short ret_attr_count;
short ret_values_maxlen;
short user_maxlen;
char curr_vol_subvol_t;
int x, j, val1, val2, val3;
short user_curlen, piece_length, fullname_length;
short fpointer, error, resultFD,resultFM, resultUGI,resultGIL, resultFR,ret_val_length;
union {
long id_32;
short id_16[2];
} user_id;
struct {
short paid;
short prgm_len;
char prgm_name_E[ZSYS_VAL_LEN_FILENAME];
} ret_vals;
struct {
char val[20];
} command_DB[2];
struct {
char val4[50];
} user_id_DB[2];
short attr_listX[2];
};
struct local_stack_def l_temp;
struct local_stack_def *l = &l_temp;
strcpy(&l->curr_vol_subvol_t,"x");
答案 0 :(得分:0)
curr_vol_subvol_t
被声明为char
。您不能将以null结尾的C字符串"x"
复制到单个char
中。您需要一个至少包含2位成员的char
数组,或者您只需将char
(例如'x'
)分配给curr_vol_subvol_t
,如果这是您真正想要的。
答案 1 :(得分:0)
您的curr_vol_subvol_t
是一个char
,但您正在尝试向其中写char[2]
(即{ 'x', '\0' }
)。不要那样做。只需说l->curr_vol_subvol_t = 'x'.