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:

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);
}
questa e' l'implementazione di una procedura remota che ritorna la stringa che gli viene passa....
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...
codice:
Messaggio ricevuto: ciao

Messaggio da rispedire: ��q���q�
non capisco il perche' ....
Poi non mi e' chiaro nel file da passare rpcgen cioe il punto .x come viene scelta id programma cioe 0x20000013 ?
codice:
program ECHOPROG
{
    version ECHOVERS
    {
       string ECHO(string) = 1;
    } = 1;
    
} = 0x20000013;
Grazie in anticipo per la vostra risposta