Ciao a tutti, sto studiando RPC in C e ci sono alcune cose che non mi sono del tutto chiare......
o scritto qualche domanda e di alcune ho tentato una vaga risposta ehehehehe![]()
ad esempio:
questa e' l'implementazione di una procedura remota che ritorna la stringa che gli viene passa....codice:char **echo_1_svc (char **msg, struct svc_req *rp) { static char *echo_msg; free(echo_msg); echo_msg=(char*)malloc(strlen(*msg)+1); printf("Messaggio ricevuto: %s\n", *msg); strcpy(echo_msg, *msg); printf("Messaggio da rispedire: %s\n", echo_msg); return (&echo_msg); }
come mai msg e il tipo di ritorno sono doppi puntatori?... perche' sono delle variabili che gia di per se sono degli indirizzi?
o ci sono altri motivi?.
..poi perche' il tipo e' dichiarato static?...forse dipende dal fatto che piu client posso richiedere questa procedura...o no?
...e come mai si puo' passare solo un parametro?
come si stampa echo_msg ? nell' ultima printf mi stampa cose strane...
non capisco il perche' ....codice:Messaggio ricevuto: ciao Messaggio da rispedire: ��q���q�
Poi non mi e' chiaro nel file da passare rpcgen cioe il punto .x come viene scelta id programma cioe 0x20000013 ?
Grazie in anticipo per la vostra rispostacodice:program ECHOPROG { version ECHOVERS { string ECHO(string) = 1; } = 1; } = 0x20000013;![]()
![]()
![]()

Rispondi quotando