“strcpy上有错误”;指向代码空间的地址为; #pragma检查,符号 #布拉格语 #pragma ENV LIBSPACE #包括 #包括 #包括 #包括 #包括 #包括 #包括 #包括 #包括“$SYSTEM.ZSYSDEFS.ZSYSC(文件名\常数,进程\项目代码)” #布拉格列表 /*变数*/ const char program_id_DB[]=“CSRTST”; const char program_name_DB_c[ZSYS_VAL_LEN_FILENAME]={“$DSMSCM.CSR.CSRTST”}; /*进程命令功能*/ processCMD(字符字符串[]) { 结构本地_堆栈_def{ _抄送状态抄送; char命令_E[30]; 字符数据项[200]; 字符用户识别码[200]; char curr_vol_subvol[ZSYS_VAL_LEN_FILENAME]; 字符程序名称数据库[ZSYS_VAL_LEN_FILENAME]; 短重计数; 短ret_值_maxlen; 短用户_maxlen; char curr\u vol\u subvol\t; int x,j,val1,val2,val3; 短用户长度、工件长度、全名长度; 短fpointer、error、resultFD、resultFM、resultUGI、resultGIL、resultFR、ret_val_length; 联合{ 长id_32; 短id_16[2]; }用户识别码; 结构{ 工资不足; 短prgm_len; char prgm_name_E[ZSYS_VAL_LEN_FILENAME]; }检索; 结构{ char-val[20]; }命令_DB[2]; 结构{ char-val4[50]; }用户id数据库[2]; 短属性列表[2]; }; 结构本地_堆栈_def l_temp; 结构本地_堆栈_def*l=&l_温度; 结构图(&l->当前卷次级卷,“x”);

“strcpy上有错误”;指向代码空间的地址为; #pragma检查,符号 #布拉格语 #pragma ENV LIBSPACE #包括 #包括 #包括 #包括 #包括 #包括 #包括 #包括 #包括“$SYSTEM.ZSYSDEFS.ZSYSC(文件名\常数,进程\项目代码)” #布拉格列表 /*变数*/ const char program_id_DB[]=“CSRTST”; const char program_name_DB_c[ZSYS_VAL_LEN_FILENAME]={“$DSMSCM.CSR.CSRTST”}; /*进程命令功能*/ processCMD(字符字符串[]) { 结构本地_堆栈_def{ _抄送状态抄送; char命令_E[30]; 字符数据项[200]; 字符用户识别码[200]; char curr_vol_subvol[ZSYS_VAL_LEN_FILENAME]; 字符程序名称数据库[ZSYS_VAL_LEN_FILENAME]; 短重计数; 短ret_值_maxlen; 短用户_maxlen; char curr\u vol\u subvol\t; int x,j,val1,val2,val3; 短用户长度、工件长度、全名长度; 短fpointer、error、resultFD、resultFM、resultUGI、resultGIL、resultFR、ret_val_length; 联合{ 长id_32; 短id_16[2]; }用户识别码; 结构{ 工资不足; 短prgm_len; char prgm_name_E[ZSYS_VAL_LEN_FILENAME]; }检索; 结构{ char-val[20]; }命令_DB[2]; 结构{ char-val4[50]; }用户id数据库[2]; 短属性列表[2]; }; 结构本地_堆栈_def l_temp; 结构本地_堆栈_def*l=&l_温度; 结构图(&l->当前卷次级卷,“x”);,c,C,curr\u vol\u subvol\u t被声明为char。您不能将以null结尾的C字符串“x”复制到单个char中。您需要一个至少有2个成员的char数组,或者只需分配一个char(例如'x')如果这是你真正想要的,你可以去curr\u vol\u subvol\u t。你的curr\u vol\u subvol\u t是一个单独的char,但是你试图写一个char[2](即{'x','0'})不要这样做。只需说l->curr\u vol\u subvol\u t='x.太多的代码和太少

curr\u vol\u subvol\u t
被声明为
char
。您不能将以null结尾的C字符串
“x”
复制到单个
char
中。您需要一个至少有2个成员的
char
数组,或者只需分配一个
char
(例如
'x'
)如果这是你真正想要的,你可以去
curr\u vol\u subvol\u t

你的
curr\u vol\u subvol\u t
是一个单独的
char
,但是你试图写一个
char[2]
(即
{'x','0'}
)不要这样做。只需说
l->curr\u vol\u subvol\u t='x.

太多的代码和太少的问题。请将代码片段简化到显示问题所需的最低限度。我对所有printf都有相同的错误。你知道为什么吗?!如果(l->resultGIL!=0){printf(“FILENAME_RESOLVE_uerror#::%d-发生错误。”,l->resultGIL);exit(exit_FAILURE);}我不知道为什么。在注释中解决这个问题非常困难。问一个新问题。这个问题已经完成。下次尝试发布更少的代码。将示例缩减为一个短的可重复的代码块。
  #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");