Я новичок в RPC.В файле спецификации .x я пишу один метод, который принимает структуру sqaure_in и возвращает структуру square_out.Но вот что делает меня неясным, когда я вызываю удаленный метод squareproc_1 из файла клиента, я передаю указатель, а не значение структуры, но в файле спецификации метод принимает struct square_in, а не указатель, так почемупроисходит?
client.c
int main(int argc, char **argv) {
CLIENT *c1;
square_in in;
square_out *outp;
if(argc != 3) {
printf("usage: client <HOST NAME> <integer-value>\n");
exit(-1);
}
c1 = clnt_create(argv[1], SQUARE_PROG, SQUARE_VERS, "tcp");
in.arg1 = atoi(argv[2]);
if((outp = squareproc_1(&in, c1)) == NULL) {
printf("%s", clnt_sperror(c1, argv[1]));
exit(-1);
}
printf("result: %ld\n", outp->res1);
exit(0);
}
square.x
struct square_in {
long arg1;
};
struct square_out {
long res1;
};
program SQUARE_PROG {
version SQUARE_VERS {
square_out SQUAREPROC(square_in) = 1;
} = 1;
} = 0x31230000;