我正在尝试使用结构从服务器发回消息。但我遇到了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);
// } %%
我评论了调试检查以查看结果中发生了什么,并尝试将结果的格式更改为&amp;(*(result_1).timeinfo)和大量格式。它们都不起作用。打印将是结果时间:( null)或类似分段错误......
这是服务器的结果,我认为数据会进入result.timeinfo。
something: Tue Feb 16 19:52:55 2016
答案 0 :(得分:0)
您正在分配“某事”的地址。你需要strcpy结果。