santaclause83
04-09-2007, 12:46
ho una funzione
receive(char *msg,int fd)
che fa due read sulla pipe indicata dal file descriptor fd
--la prima legge la grandezza del messaggio dalla prima write del client per la malloc con la quale inizializza msg
--la seconda legge e salva in msg il messaggio ricevuto dalla seconda write del client
se faccio una stampa di controllo da dentro verifico che msg punta effettivamente al messaggio appena ricevuto.
se faccio invece una stampa di controllo dal main da dove chiamo la funzione,mi stampa a vuoto,la variabile non e' inizializzata.
DAL MAIN DEL RECEIVER CHIAMO LA FUNZIONE COSI':
int fd;//inizializzo fd dopo l'apertura della pipe sulla read...
char *s;
receive(s,fd);
printf("%s\n",s);//questa chiamata stampa a vuoto,se invece la faccio dalla funzione la variabile e' stata effettivamente inizializzata col messaggio...
spero di esser stato chiaro,e nel caso che possiate suggerirmi una soluzione
grazie mille
receive(char *msg,int fd)
che fa due read sulla pipe indicata dal file descriptor fd
--la prima legge la grandezza del messaggio dalla prima write del client per la malloc con la quale inizializza msg
--la seconda legge e salva in msg il messaggio ricevuto dalla seconda write del client
se faccio una stampa di controllo da dentro verifico che msg punta effettivamente al messaggio appena ricevuto.
se faccio invece una stampa di controllo dal main da dove chiamo la funzione,mi stampa a vuoto,la variabile non e' inizializzata.
DAL MAIN DEL RECEIVER CHIAMO LA FUNZIONE COSI':
int fd;//inizializzo fd dopo l'apertura della pipe sulla read...
char *s;
receive(s,fd);
printf("%s\n",s);//questa chiamata stampa a vuoto,se invece la faccio dalla funzione la variabile e' stata effettivamente inizializzata col messaggio...
spero di esser stato chiaro,e nel caso che possiate suggerirmi una soluzione
grazie mille