我正在尝试使用结构从服务器发送回消息。但是我遇到了result_1 = null的问题。我的猜测是没有任何回传,但我不知道如何解决。这是我的代码。

msg.x
struct message{
      string timeinfo<255>;
      string cpu<255>;
      string memory<255>;
      string proclist<255>;
};

program MSGPROG {
   version MSGVERS {
      message MSGSEND(void) = 1;
               } = 1;
} = 0x20000000;


服务器端

        result.timeinfo= asctime(timeinfo);
        printf ("something: %s\n",result.timeinfo);
        return &result;


客户端

 #endif  /* DEBUG */

        result_1 = msgsend_1((void*)&msgsend_1_arg, clnt);
        //      if (result_1 == (message *) NULL) {
        //              clnt_perror (clnt, "call failed");
        //      }else{


        printf("Result time: %s\n",&(*result_1).timeinfo);
          //    }      %%


我评论了调试检查以查看结果如何,并尝试将结果的格式更改为&(*(result_1).timeinfo)和很多格式。它们都不起作用。打印将是结果时间:(null)或类似细分错误的信息...

这是服务器的结果,我认为数据进入了result.timeinfo。

something: Tue Feb 16 19:52:55 2016

最佳答案

您正在分配“内容”的地址。您需要隐藏结果。

10-07 14:26