我正在尝试使用结构从服务器发送回消息。但是我遇到了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
最佳答案
您正在分配“内容”的地址。您需要隐藏结果。